docker 启动的 jenkins 中调用宿主机docker进行build
前言期初有这个需求感觉就跟套娃一样,你在docker 中调用docker,笑哭……这个也太逗了。不过的确遇到了,因为jenkins 容器中没有docker ,所以在编译 docker build 的时候 会出现 docker command 不存在。好吧,解决他!解决其实也很简单,把宿主机的 docker.socket 和 docker 挂在到容器内部,就可以使用了docker-composeve
·
前言
期初有这个需求感觉就跟套娃一样,你在docker 中调用docker,笑哭……这个也太逗了。
不过的确遇到了,因为jenkins 容器中没有docker ,所以在编译 docker build 的时候 会出现 docker command 不存在。
好吧,解决他!
解决
其实也很简单,把宿主机的 docker.socket 和 docker 挂在到容器内部,就可以使用了
docker-compose
version: "3"
services:
jenkinsServer:
image: jenkins/jenkins:latest
volumes:
- /data/mnt/jenkins/:/var/jenkins_home
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
ports:
- 9101:8080
- 9102:50000
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints: [node.role == manager]
networks:
- default
networks:
default:
external:
name: unreal-network
以上就可以使用docker在容器内build了。
无权限的问题
docker 默认是使用 root 用户才能使用和访问的。如何解决呢?
sudo chmod a+rw /var/run/docker.sock
一句话解决
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)