CI / CD Gitlab部署失败 - 找不到dbl命令

时间:2018-05-24 07:53:50

标签: heroku continuous-integration pipeline gitlab-ci continuous-deployment

管道 .gitlab-ci.yml 代码成功运行到昨天,但今天我收到错误,上面写着“找不到dpl命令”

以下是我的 .gitlab-ci.yml 文件

image: node:8.9.3

stages:
  - job1
  - test
  - production

job1:
  stage: job1
  script: "ls -l"

test:
  stage: test
  script: 
    - npm install

production:
  type: deploy
  stage: production
  image: ruby:latest
  script:
    - apt-get update -qy
    - apt-get install -y ruby-dev
    - gem install dpl
    - dpl --provider=heroku --app=quailapp --api-key=$HEROKU_PRODUCTION_API_KEY
  only:
    - master

这是生成的日志,

Setting up rake (10.5.0-2) ...
Setting up libruby2.3:amd64 (2.3.3-1+deb9u2) ...
Setting up ruby2.3 (2.3.3-1+deb9u2) ...
Setting up ruby2.3-dev:amd64 (2.3.3-1+deb9u2) ...
Setting up ruby-dev:amd64 (1:2.3.3) ...
Setting up ruby (1:2.3.3) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
$ gem install dpl
Successfully installed dpl-1.9.6
1 gem installed
$ dpl --provider=heroku --app=quailapp --api-key=$HEROKU_PRODUCTION_API_KEY
/bin/bash: line 68: dpl: command not found
ERROR: Job failed: exit code 1

请帮助我找到解决方案。

2 个答案:

答案 0 :(得分:2)

这里的问题相同。我认为,它是码头图像中的一个问题。见https://github.com/docker-library/ruby/pull/209

他们做了一些改变,打破了宝石二进制文件的路径。我们必须等到他们合并修复。

<强>更新

它已经合并,他们的修复程序适合我。

答案 1 :(得分:2)

在这里,发出命令以安装详细的dpl:gem install dpl --verbose我已经能够看到一些奇怪的东西:

/usr/local/bundle/bin/dpl
Successfully installed dpl-1.9.6
1 gem installed

我不知道为什么,但它安装在非默认路径中。作为一种解决方法,我在/usr/local/bundle/bin环境变量中添加了$PATH,发出以下命令:

export PATH=$PATH:/usr/local/bundle/bin

它适用于我,我的gitlab ci管道现在再次工作。

顺便说一句,很高兴知道为什么它突然改变了......