我从ubuntu:18.10创建了一个docker镜像,并安装了一些二进制文件,curl,nvm,node和yarn。
我在gitlab存储库上创建了一个.gitlab-ci.yml
文件,该文件使用此图像来运行作业。
当作业尝试访问并运行其中一个二进制文件(例如yarn install
)时,我收到/bin/bash: line 90: yarn: command not found
的bash错误。
经过一段时间的调查,我发现在运行gitlab作业时,在安装此二进制文件期间设置的环境变量已消失。
我尝试过,发现在.gitlab-ci.yml
配置文件中添加了以下缺少的变量:
variables:
NVM_DIR: "/root/.nvm"
NVM_BIN: "/root/.nvm/versions/node/v10.14.0/bin"
PATH: "/root/.nvm/versions/node/v10.14.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
解决了这个问题。
尽管这可以解决问题,但是这是一个丑陋的解决方法,有没有办法防止这些变量被覆盖?