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



管道.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

他们进行了一些更改,并为宝石二进制文件开辟了道路。我们必须等到他们合并修复。

更新:

它已经合并了,他们的修复对我有用。

最新更新