Gitlab-runner 无法执行第二份工作
Posted
技术标签:
【中文标题】Gitlab-runner 无法执行第二份工作【英文标题】:Gitlab-runner fails to perform second job 【发布时间】:2021-02-13 05:09:58 【问题描述】:我在任务的连续性方面遇到了问题,我创建了一个 GitLab-runner 寄存器并从 .gitlab-ci.yml 文件中应用创建的寄存器标签,它会正常执行,但是,如果我执行一个新的提交或任何需要运行它的东西,它不会。
图像是指成功的作业的第一个作业和错误的作业的第二个和另一个作业
First image successfully
First image successfully
Image with error
文件.gitlab-ci.yml下面的代码
image: docker:latest
services:
- docker:dind
stages:
- master
build:
stage: master
only:
- master
tags:
- prod
script:
- sudo docker-compose -f docker-compose.yml build --no-cache
- sudo docker-compose -f docker-compose.yml up -d
解释我想要完成的事情,我需要创建一个管道,每次我提交或更改分支主服务器时,我都会在我的 SSH 服务器上执行 git pull,下载更改后的版本后,我将在 docker 上上传应用程序。
【问题讨论】:
你能澄清你的问题吗?您提供的 CI 文件仅列出了 1 个作业,因此“第二个作业”不可能因为没有第二个作业而失败 Arty-chan - 关于你的评论我不太明白,万一你发现有问题,那我该如何挂载我的流呢? 我认为要实现你想要做的,你在 CI 文件中的内容应该可以工作。您遇到的问题应该通过答案来解决。描述中有点令人困惑的是,听起来应该在同一个管道中有两个作业,但事实并非如此。 【参考方案1】:您的跑步者设置不正确。 gitlab 运行器运行的用户没有在构建目录中写入/删除的权限。使用chown
/chmod
更改/home/gitlab-runner
下的权限,保证gitlab-runner用户有读/写/删除文件的权限。
【讨论】:
好的,我会测试的。 同样的事情,无济于事。 看起来您正在选择 shell 执行程序,而不是 docker 执行程序。确保所有带有标签prod
的运行器都在运行 docker 执行器,而不是 shell 执行器。请为您的问题提供一份经过清理的 config.toml 副本以获取更多帮助@HyagoLopes以上是关于Gitlab-runner 无法执行第二份工作的主要内容,如果未能解决你的问题,请参考以下文章