gitlab ci/cd如何在docker in docker 下 将流水线的产物输出到宿主机上?

举报
拿我格子衫来 发表于 2022/03/17 23:20:57 2022/03/17
【摘要】 docker in docker 的意思是 gitlab-runner 是使用docker 安装启动 runner的执行器选择的也是docker。那么流水线就会在docker 镜像中运行 这种情况下如何...

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"

  
 
  • 1

配置截图
在这里插入图片描述

注意这样配置之后,还需要在流水线中进行一个操作。因为我们的镜像 都没有这个目录/build/fizz
贸然去映射会报找不到目录 。导致流水线无法运行。

所以我们要在 before_script 中 创建改目录。

如下

default:
  tags:
    - kunpeng
  before_script: 
    - mkdir -p /build/fizz
job:
  script:
    - cd /build/fizz && touch 1.txt
    - ls -l


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

进入本地目录,验证结果

cd /home/fizz/www/docker_build && ls -l

  
 
  • 1

在这里插入图片描述

完成。

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/120195224

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。