docker - 如何在不使用 docker-in-docker 的情况下在 jenkins 管道中使用 docker
问题描述
docker-in-docker的作者在此博客中建议不要将此图像用于 CI 目的: jpetazzo/Using Docker-in-Docker for your CI or testing environment?三思而后行
为什么 Jenkins 在 Jenkins 用户手册(安装部分)中使用 docker-in-docker 在以下链接中: 安装 Jenkins(您可以在第 4 步中看到它)
他们为什么不直接使用卷来使用 docker daemon,如下所示:
--volume /var/run/docker.sock:/var/run/docker.sock
使用 docker-in-docker 有什么具体原因吗?
如果您同意它应该在不使用 docker-in-docker 的情况下完成,请告诉我如何这样做,实际上我已经尝试过没有运气,我在这里遇到了另一个问题:如何找出哪个用户正在访问 /var/run/docker.sock 这将导致权限被拒绝错误
解决方案
@tashkhisi - 正如https://stackoverflow.com/a/63200614/8723275中已经提到的,这取决于您尝试使用的 Jenkins 映像。如果您将使用jenkinsci/bleocean - 它已经在管道内有 docker,但您需要自己做。如果您更喜欢使用jenkins/jenkins图像 - 您可以在以下讨论中找到答案。一种可能的解决方案是构建您自己的 Jenkins 映像并在映像中动态安装所有需要的插件。
推荐阅读
- node.js - 在响应标头中发送对象 Node JS
- html - 悬停动画在悬停时“跳跃”
- django - 为什么我自己的 template_name 没有显示,而不是 django 中的默认 template_name?
- php - PHPOffice 和用 PHP 读取 XLS
- php - 点击提交时如何将第一个表的id添加到第二个表的id_position字段中?
- php - 使用特定样式将多个空变量打印为“不可用”
- c++ - bitset 元素迭代的抽象
- apache-spark - Spark Structured Streaming foreachBatch 和 UPSERT(合并):坚持还是不坚持?
- django - 如何在 Django Rest Framework 中使用自定义属性名称序列化 JSON
- javascript - 如何让 JS 函数从 HTML 按钮返回到标题?