1,安装jdk环境
此处略
2,确保安装好了docker,使用docker安装jenkins
docker search jenkins #查看jenkins版本命令
docker pull jenkins/jenkins:lts # 拉取最新版本的Jenkins镜像
mkdir /home/jenkins # 创建Jenkins工作目录
chown -R 1000:1000 /home/jenkins # 给该目录赋予权限
docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home jenkins/jenkins:lts
## --privileged=true 让容器有root权限,方便进入容器操作
## -p 9090:8080 jenkins的web访问端口9090
## -v /home/jenkins:/var/jenkins_home 容器/var/jenkins_home路径映射到宿主机/home/jenkins
3,开放9080防火墙端口
firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --reload
4,登录jenkins
- Docker运行Jenkins成功后,就可以访问这个地址了:
http://45.63.104.35:9090/,第一次登录需要输入管理员密码
5,安装相关插件
安装角色管理插件:Role-based Authorization Strategy
- 安装SSH插件
6,全局工具配置jdk、maven、git等
注:这里配置的jdk、maven需要在jenkins所在的容器内部保存,即 先下载jdk、maven到centos服务器上,然后通过docker命令拷贝到jenkins容器内,拷贝命令:docker cp /www/jdk/jdk-11.xxx containerId:/jdk/xxx 需要先建立好目录文件
拷贝完后,可以先确保容器内jdk、maven的环境变量,您需要在/etc/profile中添加以下代码:
export JAVA_HOME=/usr/java/jdk1.8.0_211 # JDK安装路径
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
在终端中输入echo $JAVA_HOME 命令来查看JDK的安装目录是否正确
7,新建部署机器与github代码库的凭证
第一个表示 使用github的账号密码进行连接
第二个是作为webhook时所需要凭证
其中的secret为在github中创建所得,我的-settings-Developer settings-personal access token,勾选 repo、admin:repo_hook
8,设置系统管理-系统设置,即 代码库ssh连接以及webhook相关配置
webhook:
ssh连接设置:
9,在相关 src/main目录下面创建docker目录,在docker目录下创建Dockerfile文件,文件内容:
# 指定是基于哪个基础镜像
FROM openjdk:11
# 作者信息
MAINTAINER loren
# 挂载点声明
VOLUME /tmp
# 将本地的一个文件或目录,拷贝到容器的文件或目录里
ADD /target/sp-server.jar sp-server.jar
#shell脚本
RUN bash -c 'touch /sp-server.jar'
# 将容器的8000端口暴露,给外部访问。
EXPOSE 8099
# 当容器运行起来时执行使用运行jar的指令
ENTRYPOINT ["java", "-jar", "sp-server.jar"]
该步骤可以通过使用管理员角色 powerShell 命令来测试打包镜像:docker build -t sp-server:1.0 -f ./src/main/docker/Dockerfile .
执行该命令后可通过docker image查看是否生成了java 镜像
然后通过docker命令执行验证:docker run -d -p 8099:8099 --name sp-server sp-server:1.0
10,创建任务-maven项目
设置镜像仓库:
设置webhook触发:
执行shell命令:
#!/bin/bash -il
docker rm -f sp-server
sleep 1
docker rmi -f sp-server:1.0
sleep 1
mvn clean install -Dmaven.test.skip=true
sleep 1
docker build -t sp-server:1.0 -f ./src/main/docker/Dockerfile .
sleep 1
docker run -d -p 8099:8099 --name sp-server sp-server:1.0
相关参照文章:
Jenkins + Docker + Gitee自动化部署SpringBoot应用-阿里云开发者社区