testcontainers-node 无法在 Gitlab CI 上启动 ryuk
testcontainers-node cannot start ruyk on GitlabCI
我在 gitlab ci.
上使用 testcontainers-node 通过开玩笑进行 运行 e2e 测试时遇到问题
default:
image: personal-registy/node:14-alpine3.12
services:
- name: personal-registy/docker:19.03-dind
alias: docker-dind
entrypoint: ['dockerd']
command: ['--host=tcp://0.0.0.0:2375']
variables:
IMAGE: $REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
DOCKER_HOST: tcp://docker-dind:2375
DOCKER_DRIVER: overlay2
RYUK_CONTAINER_IMAGE: personal-regist/ruyk:0.3.2
stages:
- Prepare
- Tests
modules:
stage: Prepare
script:
- npm ci --no-audit
artifacts:
paths:
- node_modules/
expire_in: 1 hour
test-e2e:
stage: Tests
before_script:
- mkdir $HOME/.docker
- echo $DOCKER_AUTH_CONFIG > $HOME/.docker/config.json
after_script:
- rm -rf $home/.docker
dependencies:
- modules
script:
- npm run test:e2e
artifacts:
expire_in: 1 day
第一步构建和准备用于测试的打字稿代码没有问题。但是在 运行 CI 通过 npm 命令我在日志消息中得到了下一个堆栈跟踪:
Error: (HTTP code 409) container stopped/paused - Container d26dbb007bd42c3eb129e83db6253f3056fcc37294c84c4f00d13637bd451d6b is not running
at /builds/raif-capital/rcap-core-services/rc-operation-core/node_modules/docker-modem/lib/modem.js:315:17
at getCause (/builds/raif-capital/rcap-core-services/rc-operation-core/node_modules/docker-modem/lib/modem.js:345:7)
at Modem.buildPayload (/builds/raif-capital/rcap-core-services/rc-operation-core/node_modules/docker-modem/lib/modem.js:314:5)
at IncomingMessage.<anonymous> (/builds/raif-capital/rcap-core-services/rc-operation-core/node_modules/docker-modem/lib/modem.js:286:14)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (internal/streams/readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
reason: 'container stopped/paused',
statusCode: 409,
json: {
message: 'Container d26dbb007bd42c3eb129e83db6253f3056fcc37294c84c4f00d13637bd451d6b is not running'
}
}
如果我通过 npm 在本地机器上开始测试,运行 测试没有问题。
我找到了解决方案。
Ryuk 无法启动,因为访问 Docker 套接字时出现问题。
我刚刚通过 env:
在 CI 上禁用了 Ryuk
variables:
TESTCONTAINERS_RYUK_DISABLED: 'true'
在此之后我的测试成功完成。
我在 gitlab ci.
上使用 testcontainers-node 通过开玩笑进行 运行 e2e 测试时遇到问题default:
image: personal-registy/node:14-alpine3.12
services:
- name: personal-registy/docker:19.03-dind
alias: docker-dind
entrypoint: ['dockerd']
command: ['--host=tcp://0.0.0.0:2375']
variables:
IMAGE: $REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
DOCKER_HOST: tcp://docker-dind:2375
DOCKER_DRIVER: overlay2
RYUK_CONTAINER_IMAGE: personal-regist/ruyk:0.3.2
stages:
- Prepare
- Tests
modules:
stage: Prepare
script:
- npm ci --no-audit
artifacts:
paths:
- node_modules/
expire_in: 1 hour
test-e2e:
stage: Tests
before_script:
- mkdir $HOME/.docker
- echo $DOCKER_AUTH_CONFIG > $HOME/.docker/config.json
after_script:
- rm -rf $home/.docker
dependencies:
- modules
script:
- npm run test:e2e
artifacts:
expire_in: 1 day
第一步构建和准备用于测试的打字稿代码没有问题。但是在 运行 CI 通过 npm 命令我在日志消息中得到了下一个堆栈跟踪:
Error: (HTTP code 409) container stopped/paused - Container d26dbb007bd42c3eb129e83db6253f3056fcc37294c84c4f00d13637bd451d6b is not running
at /builds/raif-capital/rcap-core-services/rc-operation-core/node_modules/docker-modem/lib/modem.js:315:17
at getCause (/builds/raif-capital/rcap-core-services/rc-operation-core/node_modules/docker-modem/lib/modem.js:345:7)
at Modem.buildPayload (/builds/raif-capital/rcap-core-services/rc-operation-core/node_modules/docker-modem/lib/modem.js:314:5)
at IncomingMessage.<anonymous> (/builds/raif-capital/rcap-core-services/rc-operation-core/node_modules/docker-modem/lib/modem.js:286:14)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (internal/streams/readable.js:1327:12)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
reason: 'container stopped/paused',
statusCode: 409,
json: {
message: 'Container d26dbb007bd42c3eb129e83db6253f3056fcc37294c84c4f00d13637bd451d6b is not running'
}
}
如果我通过 npm 在本地机器上开始测试,运行 测试没有问题。
我找到了解决方案。
Ryuk 无法启动,因为访问 Docker 套接字时出现问题。 我刚刚通过 env:
在 CI 上禁用了 Ryukvariables:
TESTCONTAINERS_RYUK_DISABLED: 'true'
在此之后我的测试成功完成。