有带哥用过 gitlab 的 CI/CD 功能吗,为什么我安装 runner 的时候指定了以 ubuntu 这个用户执行,但是实际部署时,偶尔会发生它用 gitlab-runner 这个用户去执行部署脚本呢(权限不足会导致失败),关键是大部分时候都是正常的,实在想不通
1
julyclyde 2021-01-18 12:37:30 +08:00
偶尔?
|
2
ETiV 2021-01-18 13:01:00 +08:00 via iPhone
重启一下运行 runner 的机器,再试试看
|
3
IurNusRay OP @julyclyde 是的,大部分情况下都是用我配置的 ubuntu 用户去执行部署命令,但是偶尔会出现用 gitlab-runner 这个用户去执行,没什么规律
|
5
matrix67 2021-01-18 13:37:18 +08:00
看下 systemd 的配置中,是咋配置的。
[Unit] Description=GitLab Runner After=syslog.target network.target ConditionFileIsExecutable=/usr/local/bin/gitlab-runner [Service] StartLimitInterval=5 StartLimitBurst=10 ExecStart=/usr/local/bin/gitlab-runner "--debug" "run" "--working-directory" "/home/gitlab-runner" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "root" Restart=always RestartSec=120 [Install] WantedBy=multi-user.target ------------------ 直接命令行执行,也可以加是哪个用户的 --user /usr/local/bin/gitlab-runner --debug run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user gitlab-runner 可以加上--debug 看下。 |
6
IurNusRay OP @matrix67 我在 run 的时候是特别加了 working-directory 和 user 的配置的,下面是 systemd 的配置
|
7
IurNusRay OP [Unit]
Description=GitLab Runner After=syslog.target network.target ConditionFileIsExecutable=/usr/bin/gitlab-runner [Service] StartLimitInterval=5 StartLimitBurst=10 ExecStart=/usr/bin/gitlab-runner "run" "--working-directory" "/home/ubuntu" "--config" "/etc/gitlab-runner/config.toml" "--service" "switch_api_service" "--syslog" "--user" "ubuntu" Restart=always RestartSec=120 [Install] WantedBy=multi-user.target |
8
matrix67 2021-01-18 14:10:39 +08:00
@IurNusRay #7 是用 systemd 的时候,一定要设置为 root 。 我那时候好像是这样的,不知道现在改了没
你可以看看这个 https://gitlab.com/gitlab-org/gitlab-runner/-/issues/1121 里面好像有个 workaround |