前提
Jenkins是容器化部署的,目前有后端Java的部署任务,完成打包生成jar包后,需要运行Dockerfile,打包生成镜像,进行了一些实践
参考文章
https://hackmamba.io/blog/2022/04/running-docker-in-a-jenkins-container/
具体实践
方式一:不要用容器化部署Jenkins
直接war或者jar部署jenkins,jenkins环境复用宿主机,比较简单
方式二:容器化运行的Jenkins,单独运行Docker
这样实践了,但是没成功,不知为何
如下是基于jenkins的image,继续制作带有docker的镜像
FROM jenkins/jenkins:2.451-jdk17
USER root
RUN apt-get update -qq \&& apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/debian \$(lsb_release -cs) \stable"
RUN apt-get update -qq \&& apt-get -y install docker-ce
RUN usermod -aG docker jenkins
EXPOSE 8080
方式三:容器化运行的Jenkins,与宿主机Docker通信
运行的Jenkins与宿主机Docker通信
前提是宿主机得有docker,基于上一步方式二的镜像,然后通过-v /var/run/docker.sock:/var/run/docker.sock
进行与宿主机的docker通信,则在容器化内部可以使用了