【发布时间】:2020-09-13 00:22:45
【问题描述】:
我一直在寻找一种在我的项目中实施 CI/CD 管道的方法。我决定使用带有 gitlab-runner 技术的 Gitlab。我尝试通过 docker 容器使用它,但经过 100 多次尝试后,我决定将它安装在机器上。
我一步步跟着官方Gitlab guide一切正常;我运行寄存器,正确填写所有字段,然后继续编写 .gitlab-ci.yml:
image: docker:latest
services:
- docker:18.09.9-dind
stages:
- deploy
step-deploy-prod:
stage: deploy
only:
- master
script:
- docker-compose up -d --build
when: always
environment: master
正如你在查看 yml 文件时可以想象的那样,当在 master 上执行一些操作时,管道启动并执行 docker-compose up --build -d (有问题的项目是一个带有 SQL 的 PHP 应用程序通过 compose 部署的数据库)。
首次运行: 绝对完美;管道启动,构建正确执行并正确上线
第二次及之后的 140 次运行: 这就是噩梦。由于同样的原因,超过 140 个构建失败;克隆存储库时,运行器似乎没有对其主目录(/home/gitlab-runner/builds/...)的写入权限。
如果我手动删除 builds/ 运行器中的嵌套文件夹,但仅运行一次,则情况相同。
我尝试过:
- 在其主目录上运行 chown gitlab-runner:gitlab-runner(也作为 TOML 文件中的 pre_clone_script);
- 将 gitlab-runner 添加到 sudoers 组;
- 我将 gitlab-runner 添加到 docker 组;
- 一系列文件权限操作,然后chmod 777,chgrp用 跑步者团体等。
【问题讨论】:
-
1.你是如何安装 gitlab 运行器的?请粘贴命令 2.在第一个作业之前粘贴路径的权限我认为您需要重新安装运行器
标签: docker gitlab gitlab-ci gitlab-ci-runner docker-in-docker