Jenkins的部署其实很简单,因为Jenkins本身就是一个war包 使用Java -jar jenkins.war就可以很方便启动一个jenkins服务,但是这种部署方式很容易受到运行环境的干扰,jdk版本,服务器环境等,如果后续服务需要迁移、扩容会比较麻烦。
其实这种像jenkins这种无状态应用非常适合使用docker来部署,后续扩展迁移可以完全保证环境的一致性。
下面我们使用docker快速部署一个jenkins服务
# 使用jdk8 的lts版本
docker pull jenkins/jenkins:2.346.3-lts-jdk8
# 创建挂载文件夹
mkdir -p /docker/jenkins18080
# 创建挂载目录的同时要给该目录配置权限 777,如果权限不足的话,
# 到时进行目录挂载的时候会失败导致无法启动 Jenkins 容器。
chmod 777 /docker/jenkins18080
docker run -d \
-p 18080:8080 \
-p 50000:50000 \
--name=jenkins18080 \
-v /docker/jenkins18080:/var/jenkins_home \
-v /docker/jenkins18080/localtime:/etc/localtime \
--restart=always \
jenkins/jenkins
docker ps -l
------------
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9bbc86aa0358 jenkins/jenkins "/sbin/tini -- /usr/…" 4 hours ago Up 4 hours 0.0.0.0:8888->8080/tcp, 0.0.0.0:50000->50000/tcp jenkins
查看启动日志:
docker logs jenkins18080
-------------------
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2022-03-16 03:49:09.190+0000 [id=1] [INFO] org.eclipse.jetty.util.log.Log
如果没有启动成功的话,可以排查一下挂载的目录是否正确,比如是否配了目录权限等。
在访问 Jenkins 页面前,我们需要对 Jenkins 的插件配置内容修改成内容的镜像加速地址 🔗 之配置国内镜像加速
配置好后,访问 Jenkins 页面

管理员的初始密码在 Jenkins 的工作目录下:/var/jenkins_home/secrets/initialAdminPassword,我们可以进容器内部去查看,也可以在我们挂载的目录下查看:
cat /usr/local/jenkins/secrets/initialAdminPassword
在下一个插件安装页面上,我们选择安装推荐的插件即可,下面是推荐的插件安装页面:

安装完成后,会进入管理员创建页面,可以选择使用admin账户继续,也可以创建一个新的管理员用户(建议创建新的管理员用户,方便管理账号密码):

完成之后就是欢迎界面了:


第一次访问jenkins站点时会让你输入对应的密码进行配置,直接根据提示获取对应文件中的密码







在项目根目录编写Dockerfile 文件用于配合docker build and publish 进行构建docker 镜像 内容如下
FROM java:8 #环境依赖
MAINTAINER hello <hello.dp@qq.com> #作者信息
VOLUME /tmp
ADD target/dev-ops-0.0.1-SNAPSHOT.jar /dev-ops-0.0.1-SNAPSHOT.jar #增加文件
ENTRYPOINT ["java","-Xmx200m","-Xms200m","-jar","/dev-ops-0.0.1-SNAPSHOT.jar"] #运行命令
EXPOSE 8081 #暴漏端口

-镜像构造与发布可选配置

version: '3'
services:
hello-ci-cd:
restart: always
image: hello-maven-docke:v1 #指定镜像id 与tag
container_name: hello-ci-cd #指定容器名称
ports:
- '8081:8081' #端口映射

[1] CI CD流程整合