问题描述
我想在将容器推送到 aws ecs 之前在本地测试它。
我使用 Go (aws-sdk-go-v2) 端点解析器对 docker-compose 堆栈(包括 dynamodb-local 容器)运行单元测试,并将 http://localhost:8000 作为 URL。
所以我想在本地构建和测试容器,并意识到我需要将它附加到由 docker-compose 创建的默认网络。我对此有点挣扎,所以我建立了一个精简的试验。我创建了一个端点解析器,其 URL 为 http://dynamo-local:8000(在 d-c 中将容器命名为 dynamo-local)并将其附加到 docker run 中的默认网络。
现在一切正常,我可以成功执行各种表操作,但让我感到困惑的一件事是,如果我运行 aws cli:
aws --endpoint-url=http://localhost:8000 dynamodb 列表
然后当肯定存在表时,输出显示不存在表。我天真地假设,因为我可以访问具有不同端点的同一容器的端口 8000,所以我应该能够访问相同的资源。错了。
显然是我的教育差距。我错过了什么?我需要将试用扩展到对完整应用的适当测试,因此了解这里发生的事情对我来说很重要。
有没有办法使用 aws cli 访问表?
docker-compose 文件:
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
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)