前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gitlab ci/cd如何在docker in docker 下 将流水线的产物输出到宿主机上?

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

作者头像
拿我格子衫来
发布2022-01-24 14:59:07
1.9K0
发布2022-01-24 14:59:07
举报
文章被收录于专栏:TopFETopFE

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 目录。

代码语言:javascript
复制
"/home/fizz/www/docker_build:/build/fizz:rw"

配置截图

在这里插入图片描述
在这里插入图片描述

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

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

如下

代码语言:javascript
复制
default:
  tags:
    - kunpeng
  before_script: 
    - mkdir -p /build/fizz
job:
  script:
    - cd /build/fizz && touch 1.txt
    - ls -l

进入本地目录,验证结果

代码语言:javascript
复制
cd /home/fizz/www/docker_build && ls -l
在这里插入图片描述
在这里插入图片描述

完成。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档