rcd*_*ems 1 amazon-dynamodb docker bitbucket-pipelines
我正在使用 dynamodb docker 容器在 Atlassian Bitbucket 管道中运行一些测试。这些步骤使用相同的docker run命令在本地工作,但由于某种原因,在管道中运行时启动后我无法连接到数据库容器:
image: python:3.6
pipelines:
default:
- step:
caches:
- docker
script:
- docker run -d -p 8000:8000 --name dynamodb --entrypoint java amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb -inMemory
- curl http://localhost:8000
services:
- docker
Run Code Online (Sandbox Code Playgroud)
卷曲命令返回:
curl http://localhost:8000 % Total % Received % Xferd Average Speed
Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0
0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:-
-:-- 0curl: (56) Recv failure: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
我尝试使用 localhost 和 dynamodb 作为主机名,但结果相同。我也在 Atlassian 社区上发布了此问题,但没有得到答案。
您不应该amazon/dynamodb-local手动启动,而应该使用服务:
definitions:
services:
dynamodb-local:
image: amazon/dynamodb-local
memory: 2048
pipelines:
default:
- step:
image: python:3.6
size: 2x
services:
- dynamodb-local
script:
- export DYNAMODB_LOCAL_URL=http://localhost:8000
- export AWS_DEFAULT_REGION=us-east-1
- export AWS_ACCESS_KEY_ID=''
- export AWS_SECRET_ACCESS_KEY=''
- aws --endpoint-url ${DYNAMODB_LOCAL_URL} dynamodb delete-table --table-name test || true
- aws --endpoint-url ${DYNAMODB_LOCAL_URL} dynamodb create-table --cli-input-json file://test.table.json
- python -m unittest test_module.TestClass
Run Code Online (Sandbox Code Playgroud)
您可能需要将容器和内存的大小加倍,因为 DynamoDB 相当重(但它也可能在默认情况下工作)。
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |