docker in docker 的意思是 gitlab-runner 是使用docker 安装启动 runner的执行器选择的也是docker。那么流水线就会在docker 镜像中运行
这种情况下如何将流水线构建出来的一些文件放到宿主机上那?
答案就在gitlab-runner 的config.toml
文件中
首先配置项目的runner
在[runners.docker] 模块下
配置 volumes, 配置它就很类似我们的 docker run -v ....
也是挂载本地目录到容器中。 注意后面跟着一个 :rw
这个表示是同步读写。意思就是如果你在容器中 操作,改变了 目录 /build/fizz
那么这些变化都会同步映射到宿主机的 /home/fizz/www/docker_build
目录。
"/home/fizz/www/docker_build:/build/fizz:rw"
配置截图
注意这样配置之后,还需要在流水线中进行一个操作。因为我们的镜像 都没有这个目录/build/fizz
贸然去映射会报找不到目录 。导致流水线无法运行。
所以我们要在 before_script
中 创建改目录。
如下
default:
tags:
- kunpeng
before_script:
- mkdir -p /build/fizz
job:
script:
- cd /build/fizz && touch 1.txt
- ls -l
进入本地目录,验证结果
cd /home/fizz/www/docker_build && ls -l
完成。