Docker搭建jenkins+maven项目
docker 相关教程
参考《菜鸟教程-docker教程》、《docker中文社区》 等。docker环境安装好后,熟悉docker常用的命令。
安装jenkins
搜索jenkins镜像
docker search jenkins
可得到结果:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
jenkins Official Jenkins Docker image 4915 [OK]
jenkins/jenkins The leading open source automation server 2228
jenkinsci/blueocean https://jenkins.io/projects/blueocean 566
jenkinsci/jenkins Jenkins Continuous Integration and Delivery … 383
...
拉去镜像
注意拉取的镜像是 jenkins/jenkins
docker pull jenkins/jenkins
拉取镜像完成
Using default tag: latest
latest: Pulling from jenkins/jenkins
... 省略
Digest: sha256:9d9c74f1cabb2ecab899518fe75db0af2d268fae24787523da90d29fadf2716e
Status: Downloaded newer image for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest
查看拉取的镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins latest c85003278768 6 days ago 708MB
启动镜像
docker run --restart=always -p 8888:8080 -p 50000:50000 -v /home/jenkins-home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/apache-maven-3.6.3:/usr/local/maven --name jenkins -d jenkins/jenkins
启动参数说明
--restart=always 在容器停止运行的时候,重启容器。用于开机自启和容器意外关闭时的自启动
-v /home/jenkins-home:/var/jenkins_home 将宿主机的 /home/jenkins-home 目录挂载到 /var/jenkins_home。这样做是为了把Jenkins文件存放到宿主机上,就算容器被删除了,新建一个新的容器内容也不会丢失。
-v /var/run/docker.sock:/var/run/docker.sock jenkins容器与Docker守护进程通信, 如果jenkins容器需要实例化其他Docker容器,则该守护进程是必需的。
-v /usr/local/apache-maven-3.6.3:/usr/local/maven 挂在Maven目录 这里有个坑,刚开始没有挂载maven目录的情况下jenkins配置时会找不到mavne
-p 8888:8080 -p 50000:50000 宿主机8888绑定容器8080端口 宿主机50000端口绑定容器50000端口。如果是云服务器 阿里云、腾讯云、华为云,需要开放端口8888,否则会访问不到。
--name jenkins 给容器命名
-d 容器后台运行
查看jenkins启动的容器
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92677942e985 b9734fc9070e "/sbin/tini -- /usr/…" 19 hours ago Up 19 hours 0.0.0.0:50000->50000/tcp, 0.0.0.0:8888->8080/tcp jenkins
浏览器访问jenkins
http://IP:8888/
解锁jenkins文件密码,并按照推荐安装插件
推荐安装插件
jenkins 配置
插件配置
安装插件: Maven Integration、docker-build-step
image.png
maven 配置的位置是挂载的宿主机的maven安装目录
运行mvn命令实际是执行java命令,既然是运行java,那么运行java命令可用的参数当然也应该在运行mvn命令时可用。这个时候
MAVEN_OPTS环境变量就能派上用场。
通常需要设置MAVEN_OPTS的值为 -Xms128m -Xmx512m 因为Java默认的最大可用内存往往不够满足Maven运行需要,比如较大的项目时,使用Maven生成项目站点需要占用大量内存。如果没有该配置,则很容易得到java.lang.OutOfMeneoryError。因此,一开始就配置该变量是推荐的做法。
image.png
maven 配置完成可以完成后续操作新建maven项目