管道.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
请帮助我找到解决方案。
同样在这里,发出命令以详细安装 dpl:gem install dpl --verbose
我已经能够看到一些奇怪的东西:
/usr/local/bundle/bin/dpl
Successfully installed dpl-1.9.6
1 gem installed
我不知道为什么,但它安装在非默认路径中。作为解决方法,我在发出以下命令的环境变量中添加了$PATH
/usr/local/bundle/bin
:
export PATH=$PATH:/usr/local/bundle/bin
它对我有用,我的 gitlab ci 管道现在又开始工作了。
顺便说一句,很高兴知道为什么它突然发生了变化......
同样的问题在这里。我认为,这是码头工人映像中的一个问题。请参阅 https://github.com/docker-library/ruby/pull/209
他们进行了一些更改,并为宝石二进制文件开辟了道路。我们必须等到他们合并修复。
更新:
它已经合并了,他们的修复对我有用。