环境
|macos 10.15.7
|jdk 1.8.0_261 64-Bit
|docker 19.0.13
|maven-3.6.3
|Jenkins 2.249.2 LTS
https://www.jenkins.io/download/ 下载war包版本jenkins
https://maven.apache.org/download.cgi 下载maven 并解压
https://www.docker.com/ 安装docker
启动jenkins
java -jar jenkins.war
输入初始密码
配置admin账号之后选择 推荐插件安装
配置全局maven
创建任务
点击左侧 新建Item
如果有报错可以参照这个配置
点击save即可
springboot部分
**首先 Dockerfile编写 放在项目根目录
FROM java:8
ADD api/target/*.jar root.jar
VOLUME /tmp
EXPOSE 8100
ENTRYPOINT ["java","-jar","root.jar"]
**编写Jenkinsfile
项目根目录 新建 Jenkinsfile 名称的文件 不需要后缀
pipeline {
agent any
tools {
maven 'maven' //这里填刚才全局配置maven时候的写的哪个名称
}
stages {
stage('Build-Package') {
steps {
sh 'mvn -B -DskipTests clean package'
}
}
stage('Build-Docker') {
steps {
sh ' chmod 777 start.sh'
sh './start.sh'
}
}
}
}
**编写 docker的 shell脚本 我这里命名为 start.sh 也放在项目根目录下
img_output='fuck-deng' #生成镜像标签
appname='fuck-deng ' #容器名称
port=8100 #docker暴露端口
# 获得docker容器 id和镜像 id
r_c=`docker ps -a | grep "$appname" | awk '{print $1 }'`
c=`docker ps -a | grep "$appname" | awk '{print $1 }'`
r_img=`docker images | grep "$appname" | awk '{print $3 }'`
# 如果容器正在运行,停止它
if [ "$r_c"x != ""x ]; then
docker stop "$r_c"
fi
# 删除容器
if [ "$c"x != ""x ]; then
docker rm "$c"
fi
# 删除镜像
if [ "$r_img"x != ""x ]; then
docker rmi "$r_img"
fi
# 生成镜像
docker build -t $img_output .
# 日志目录
mkdir -p $PWD/logs
chmod 777 $PWD/logs
# 启动镜像 8100为工程的端口
docker run -d --name $appname -p $port:8100 $img_output
开始构建
到这里就结束了