0

我想在将容器推送到 aws ecs 之前在本地测试它。

我使用 Go (aws-sdk-go-v2) 端点解析器和 http://localhost:8000 作为 url 对 docker-compose 堆栈进行了单元测试,其中包括 dynamodb-local 容器。

所以我想在本地构建和测试容器,并意识到我需要将它附加到 docker-compose 创建的默认网络。我对此有点挣扎,所以我建立了一个精简的试验。我创建了一个端点解析器,其 URL 为 http://dynamo-local:8000(在 dc 中命名为容器 dynamo-local),并将其附加到 docker run 中的默认网络。

现在一切正常,我可以成功执行各种表操作,但让我感到困惑的一件事是,如果我运行 aws cli:

aws --endpoint-url=http://localhost:8000 dynamodb 列表

那么当肯定存在表时,输出显示不存在表。我天真地假设,因为我可以访问具有不同端点的同一容器的端口 8000,我应该能够访问相同的资源。错误的。

显然是我的教育差距。我错过了什么?我需要将试用版扩展到对完整应用程序的适当测试,因此了解这里发生的事情对我来说很重要。

有没有办法可以使用 aws cli 访问表?

码头工人撰写文件:

version: '3.5'
services:
  localstack:
    image: localstack/localstack:latest
    container_name: localstack_test
    ports:
      - '4566:4566'
    environment:
      - SERVICES=s3,sns,sqs, lambda
      - DEBUG=1
      - DATA_DIR=
    volumes:
      - './.AWSServices:/tmp/AWSServices'
      - '/var/run/docker.sock:/var/run/docker.sock'

  nginx:
    build:
      context: .
      dockerfile: Dockerfile
    image: chanonry/urlfiles-nginx:latest
    container_name: nginx
    ports:
      - '8080:80'

  dynamodb:
    image: amazon/dynamodb-local:1.13.6
    container_name: dynamo-local
    ports:
      - '8000:8000'


networks:
  default:
    name: test-net
4

0 回答 0