Skip to content

gitlab 多个ci yml文件配置

约 554 字大约 2 分钟

CI/CD

2024-12-04

在前后端放在一个仓库或者多个子应用在同一个仓库 为每个子模块配置对应 .gitlab-ci.yml 可以使项目结构更清晰

在项目根目录引入子模块ci文件

.gitlab-ci.yml 设置如下 分别引入子模块

include:
  - local: frontend/.gitlab-ci.yml
  - local: backend/.gitlab-ci.yml

再在对应子模块中编写对应.gitlab-ci.yml 这里以vue前端和python后端示例,测试代码省略

frontend/.gitlab-ci.yml

提示

配置其实很简单 和导包差不多

下面我分享一个需要注意事项 docker in docker 注意事项

docker in docker

当我们在docker容器中构建docker镜像时候 (上面push步骤) 我们需要额外配置 不然会权限不足构建失败 在Docker中实现Docker的三种方法:

  1. 通过挂载docker.sock(DooD方法)运行docker
  2. dind 方法
  3. 使用Nestybox sysbox Docker运行时

这里只分享 我最常用办法 第一种DooD

  1. 如果gitlab-runner 也是靠docker运行的需要先把 docker.sock挂载到 gitlab-runner

提示

要是gitlab-runner 运行在物理机中 此步骤可以省略

/var/run/docker.sock:/var/run/docker.sock
  1. 正常注册完runner
gitlab-runner register
  1. 为对应runner 挂载docker.sock
vi /etc/gitlab-runner/config.toml


 [runners.docker]
    tls_verify = false
    image = "docker:24.0.5"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock","/cache"] 
    shm_size = 0

贡献者