有一个运行器在推送时工作,它必须执行位于 gitlab 本身所在的服务器上的脚本。
该脚本如下所示:
#!/usr/bin/env bash
forever stop "myproject"
cd /myproject
export NODE_PATH=.
export NODE_ENV=qa
export NODE_INIT_TARGET=build
node --use_strict bin/init
forever start -a --uid "myproject" --minUptime 20000 --spinSleepTime 20000 bin/start --use_strict
那些。它只需要运行一个 js 脚本,该脚本首先从 forever.js 中删除进程(停止应用程序),构建前端,然后将进程添加到 forever.js(启动应用程序)。因此,如果您在控制台中动手操作 - 一切正常。但是跑步者给出了以下错误:
Running with gitlab-ci-multi-runner 1.10.4 (b32125f)
Using Shell executor...
Running on server...
Fetching changes...
HEAD is now at 5553b27 Merge branch 'dev' into 'master'
Checking out ed68665c as dev...
Skipping Git submodules setup
$ /myproject/myScript.sh
/myproject/myScript.sh: строка 3: forever: команда не найдена
/myproject/myScript.sh: строка 11: node: команда не найдена
/myproject/myScript.sh: строка 13: forever: команда не найдена
ERROR: Build failed: exit status 1
可能是什么原因?
root@server:/node_data/csgo-forecast/bin# env
PATH=/home/sanu/.nvm/versions/node/v6.9.5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@server:/node_data/csgo-forecast/bin# sudo -iu gitlab-runner bash -c set
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
这意味着您没有安装必要的依赖项或不可用。
Shell Runner 在
gitlab-runner
. 看起来 node 和 forever 对她不可用。也许PATH
其中没有必要的目录 - 将其与PATH
为您手动成功启动所有内容的帐户进行比较。您也可能需要从特权帐户运行。阅读更多:以非特权用户身份运行
(是的,这还不是答案,但它不再包含在评论中。我会在获得更多详细信息时补充答案。)