提前安装jdk、maven、nodeJs(如果需要的话)
创建 jenkins 环境目录,用来当做挂载卷
/data/jenkins/
docker pull jenkins/jenkins:lts
mkdir -p ~/jenkins_home
sudo chown 1000:1000 ~/jenkins_home
docker run -p 80:8080 -p 81:50000 \
--restart always \
-e JAVA_OPTS="-Djava.io.tmpdir=/xxxx/tmp" \
-v /data/jenkins/tmp:/xxxx/tmp \
-v /data/jenkins/data:/var/jenkins_home\
-v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8 \
-v /data/jenkins/repository:/opt/maven/repository \
-v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431 \
-v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
-v /etc/localtime:/etc/localtime \
--name jenkins \
-d jenkins/jenkins:lts
-p 80:8080 -p 81:50000
-p 80:8080
:将主机的 80 端口映射到容器的 8080 端口,这通常是 Jenkins 的 Web 界面端口。-p 81:50000
:将主机的 81 端口映射到容器的 50000 端口,这是 Jenkins 用于节点通信的端口。--restart always
--restart always
:确保容器在崩溃或重启后自动重启。此设置适用于生产环境中的容器,确保容器始终运行。
-e JAVA_OPTS="-Djava.io.tmpdir=/xxxx/tmp"
-e JAVA_OPTS="-Djava.io.tmpdir=/xxxx/tmp"
:设置 Java 启动参数,指定临时文件目录为 /xxxx/tmp
。这对于自定义 Jenkins 临时文件存储位置很有用。
-v /data/jenkins/tmp:/xxxx/tmp
-v /data/jenkins/data:/var/jenkins_home
-v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8
-v /data/jenkins/repository:/opt/maven/repository
-v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431
-v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker
-v /etc/localtime:/etc/localtime
-v /data/jenkins/tmp:/xxxx/tmp
:将宿主机 /data/jenkins/tmp
目录挂载到容器中的 /xxxx/tmp
,用于存储临时文件。-v /data/jenkins/data:/var/jenkins_home
:将宿主机 Jenkins 数据存储目录 /data/jenkins/data
挂载到容器中的 Jenkins 主目录 /var/jenkins_home
,用于持久化 Jenkins 配置和数据。-v /data/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8
:将 Maven 版本 3.8.8 的目录挂载到容器中,使 Jenkins 使用宿主机上的 Maven。-v /data/jenkins/repository:/opt/maven/repository
:将宿主机上的 Maven 本地仓库挂载到容器中的相应路径。-v /data/jenkins/jdk1.8.0_431:/opt/jdk/jdk1.8.0_431
:将宿主机上的 JDK 1.8 挂载到容器中,确保 Jenkins 使用正确的 JDK。-v /data/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64
:将 Node.js 18.x 挂载到容器中,使 Jenkins 可以使用此版本的 Node.js。-v /var/run/docker.sock:/var/run/docker.sock
:使容器能够与宿主机上的 Docker 守护进程通信,允许 Jenkins 运行 Docker 容器。-v /usr/bin/docker:/usr/bin/docker
:将宿主机的 Docker 二进制文件挂载到容器中,以便 Jenkins 使用宿主机的 Docker 运行命令。-v /etc/localtime:/etc/localtime
:同步容器的时间与宿主机的时间。首次登录 Jenkins 控制台时,你需要解锁 Jenkins,通常会显示一个页面提示你输入解锁密钥。
/var/jenkins_home/secrets/initialAdminPassword
。cat /data/jenkins/data/secrets/initialAdminPassword
解锁后,Jenkins 会引导你选择是否安装推荐的插件,建议选择安装 推荐插件,它包括许多常用的插件,如 Git、Maven 等。
Install suggested plugins
,Jenkins 会自动下载并安装所有推荐插件。在安装完插件后,Jenkins 会让你创建一个管理员用户。
Continue as Admin
(以管理员身份继续)。接下来,你可以配置 Jenkins 的一些全局系统设置,包括 JDK、Maven 和 Node.js 等工具的路径。
Manage Jenkins
(管理 Jenkins)。Global Tool Configuration
(全局工具配置)。jdk1.8
。/opt/jdk/jdk1.8.0_431
。maven3.8.8
。/opt/maven/apache-maven-3.8.8
。node-v18.18.0
。/opt/node/node-v18.18.0-linux-x64
。根据你的需求,你可能需要安装一些特定的插件,下面是常见的一些插件配置:
你可以在 Manage Jenkins -> Manage Plugins 中安装以下插件:
unix:///var/run/docker.sock
(这是你在 docker run
命令中挂载的路径)。比如开发环境视图
新建后端maven任务
根据每个项目不同,执行不同的命令
比如传统服务直接执行 java -jar 等命令直接启动服务
比如K8S、Docker这种云服务,可写打包镜像、推送镜像到 Docker 仓库、执行k8s相关命令拉取镜像进行容器启动等
然后点击完成
右键找到刚才新建的任务,即可进行构建