在 docker 撰写文件中设置 localstack 资源导致连接中止失败

Setting up localstack resources in docker compose file results in connection aborted failure

我有一个 docker 撰写文件,如下所示:

version: "3"

services:
  localstack:
    image: localstack/localstack:latest
    ports:
      - "4567-4597:4567-4597"
      - "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
    environment:
      - SERVICES=s3
      - DOCKER_HOST=unix:///var/run/docker.sock
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/private${TMPDIR}:/tmp/localstack"
    networks:
      - my_awesome_network

  setup-resources:
    image: mesosphere/aws-cli
    volumes:
      - ./dev_env:/project/dev_env
    environment:
      - AWS_ACCESS_KEY_ID=dummyaccess
      - AWS_SECRET_ACCESS_KEY=dummysecret
      - AWS_DEFAULT_REGION=us-east-1
    entrypoint: /bin/sh -c
    command: >
      "
        sleep 10;
        # aws kinesis create-stream --endpoint-url=http://localstack:4568 --stream-name my_stream --shard-count 1;
        aws --endpoint-url=http://localhost:4572 s3 mb s3://demo-bucket
      "
    networks:
      - my_awesome_network
    depends_on:
      - localstack
networks:
  my_awesome_network:

已从我找到的 this 博客 post 中复制,但是当我 运行 docker-compose up 时,存储桶无法创建并出现以下错误:('Connection aborted.', error(99, 'Address not available'))

这里有小细节但不应该aws --endpoint-url=http://localhost:4572 s3 mb s3://demo-bucket 应该是 aws --endpoint-url=http://localstack:4572 s3 mb s3://demo-bucket,没错 localhost 变成了 localstack

我 运行 它做了一些小改动并且它工作正常,将 localhost 更改为 localstack

version: "3"

services:
  localstack:
    image: localstack/localstack:latest
    ports:
      - '4568-4576:4568-4576'
      - '8055:8080'
    environment:
      - SERVICES=s3
      - DOCKER_HOST=unix:///var/run/docker.sock
      - DEFAULT_REGION=us-east-1
      - DEBUG=1
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/private${TMPDIR}:/tmp/localstack"
    networks:
      - my_awesome_network

  setup-resources:
    image: mesosphere/aws-cli
    volumes:
      - ./dev_env:/project/dev_env
    environment:
      - AWS_ACCESS_KEY_ID=dummyaccess
      - AWS_SECRET_ACCESS_KEY=dummysecret
      - AWS_DEFAULT_REGION=us-east-1
    entrypoint: /bin/sh -c
    command: >
      "
        sleep 10;

        aws --endpoint-url=http://localstack:4572 s3 mb s3://demo-bucket
      "
    networks:
      - my_awesome_network
    depends_on:
      - localstack
networks:
  my_awesome_network:

从版本 0.11.0 开始, 所有 API 都通过单一边缘服务公开, 可在

上访问

http://localhost:4566 by default

和EDGE_PORT=4566.

发现于此 Article