【问题标题】:testcontainers-node cannot start ruyk on GitlabCItestcontainers-node 无法在 Gitlab CI 上启动 ryuk
【发布时间】:2021-10-13 11:08:26
【问题描述】:

在 gitlab ci 上使用 testcontainers-node 通过 jest 运行 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

第一步构建和准备用于测试的打字稿代码没有问题。但是在通过 npm 命令运行 C​​I 时,我在日志消息中得到了下一个堆栈跟踪:

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 在本地机器上开始测试,我运行测试没有问题。

【问题讨论】:

    标签: node.js gitlab-ci testcontainers


    【解决方案1】:

    我找到了解决办法。

    由于访问 Docker 套接字时出现问题,Ryuk 无法启动。 我刚刚通过 env 在 CI 上禁用了 Ryuk:

    variables:
       TESTCONTAINERS_RYUK_DISABLED: 'true'
    

    在此之后我的测试成功完成。

    【讨论】:

      猜你喜欢
      • 2021-12-10
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 2022-08-18
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多