管道 .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
请帮助我找到解决方案。
答案 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管道现在再次工作。
顺便说一句,很高兴知道为什么它突然改变了......