使用 docker 容器在 Atlassian Bitbucket 管道中进行测试
Using a docker container for testing in Atlassian Bitbucket pipeline
我正在使用 dynamodb docker 容器在 Atlassian Bitbucket 管道中 运行 进行一些测试。这些步骤在本地使用相同的 docker run
命令在本地工作,但由于某种原因,我无法在 db 容器启动后连接到 运行 在管道中运行:
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
curl 命令returns:
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
我尝试使用 localhost 和 dynamodb 作为主机名,结果相同。我也在 Atlassian 社区上发布了这个,但没有得到答案。
您不应手动启动 amazon/dynamodb-local
,而应使用 services:
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
您可能需要将容器和内存的大小增加一倍,因为 DynamoDB 非常重量级(但它也可能适用于默认设置)。
我正在使用 dynamodb docker 容器在 Atlassian Bitbucket 管道中 运行 进行一些测试。这些步骤在本地使用相同的 docker run
命令在本地工作,但由于某种原因,我无法在 db 容器启动后连接到 运行 在管道中运行:
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
curl 命令returns:
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
我尝试使用 localhost 和 dynamodb 作为主机名,结果相同。我也在 Atlassian 社区上发布了这个,但没有得到答案。
您不应手动启动 amazon/dynamodb-local
,而应使用 services:
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
您可能需要将容器和内存的大小增加一倍,因为 DynamoDB 非常重量级(但它也可能适用于默认设置)。