dockerfile编写
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8066"]
EXPOSE 8066
ENTRYPOINT ["java","-jar","/app.jar"]
jenkins配置
构建一个maven的项目,用来将开发的源码打包成jar包,然后就是在脚本中实现docker镜像的构建
#!/bin/bash
jenkins_war_home=/var/lib/jenkins/workspace/
dockerfile_home=/var/lib/jenkins/
harbor_ip=192.168.1.154
harbor_user=admin
harbor_passwd=shuhai@123
echo '开始打包sh-web镜像'
#将jar包复制到dockerfile目录下
cp ${jenkins_war_home}paas-java-test/sh-web/back-web/target/*.jar ${dockerfile_home}/sh-web/dockerfile/
#判断镜像是否存在
image_id=`docker images |grep sh-web |awk '{print $3}'`
if [ -n "${image_id}" ];then
docker rmi -f ${image_id}
fi
#到dockerfile目录下执行build
cd ${dockerfile_home}sh-web/dockerfile && docker build -t sh-web . &>/dev/null || echo 'build失败'
#将镜像push到harbor仓库
docker login $harbor_ip -u $harbor_user -p $harbor_passwd
docker tag sh-web 192.168.1.154/test/sh-web:v2
docker push 192.168.1.154/test/sh-web:v2 &>/dev/null || echo "push失败"
docker logout 192.168.1.154
echo "sh-web镜像打包完成"
脚本很简单,将jar包复制到dockerfile目录下执行docker build生成镜像,然后将镜像推到harbor私有仓库,就完成了docker镜像的推送