使用Jenkins配合docker、harbor、git来自动部署java项目
**
1.安装jdk,并记住JAVA_HOME路径,配置Jenkins时用到
**
yum install java-1.8.0-openjdk*
查看jdk路径
**
2.安装maven 链接: https://pan.baidu.com/s/15u8cDVVoSnP-zpRT-TA84A 提取码: fmug 将文件上传到服务器上,并记住路径
**
修改maven下载源
vi /usr/local/maven/maven3/maven/conf/settings.xml
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
vi /etc/profile
添加maven路径
export M2_HOME=/usr/local/maven3/maven
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
更新文件
source /etc/profile
检查是否安装成功
mvn -v
**
3.安装Git
**
yum install -y git
git操作命令
CentOS7安装Git以及操作
**
4.安装Jenkins,Jenkins离线安装 链接: https://pan.baidu.com/s/19Plo7yShIDaMA3aJrsEIPA 提取码: hfed 将离线安装包上传到服务器,并进入该文件夹下
**
rpm -ivh jenkins-2.190.1-1.1.noarch.rpm
安装成功后修改用户名
vi /etc/sysconfig/jenkins
启动Jenkins服务
systemctl start jenkins
设置Jenkins开机启动
systemctl enable jenkins.service
查看是否设置成功
systemctl list-units --type=service
查看Jenkins服务运行状态
systemctl status jenkins
开放centos的防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent
刷新防火墙
systemctl restart firewalld
之后在网页中输入ip:端口号
查看登录密码(个人文件目录不同)
cat /var/lib/jenkins/secrets/initialAdminPassword
**
5.添加管理GitHub项目
**
安装插件Pipeline Maven Integration 和 Maven Integration
安装docker管理
搭建Harbor企业级docker仓库
配置docker镜像源
修改或新增 /etc/docker/daemon.json
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
重启docker
systemctl restart docker.service
安装docker-compose
安装harbor
链接: https://pan.baidu.com/s/1b_NSJCNOgFPpHRFUQemKnw 提取码: 2drf
安装
linux安装docker、docker-compose、harbor
或者
Harbor安装(docker-compose) – 企业级Registry仓库
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。 Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中,确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
Jenkins中配置
maven 改成maven中settings.xml 文件位置
编写Post Steps
port=8889
docker_server_addr=192.168.186.128:80
docker_project=backstage-graduation:latest
container=backstage-graduation
echo '================打包完成================'
cd /var/lib/jenkins/workspace/$jenkins_project
# 停止容器
docker stop $container || true
# 删除容器
docker rm -f $container || true
echo '================build 镜像================'
sudo docker build -t ${docker_server_addr}/${docker_project} -f ./Dockerfile .
echo '================推送镜像================'
docker login -u admin -p Harbor12345 ${docker_server_addr}
docker push ${docker_server_addr}/${docker_project}
echo '================部署================'
docker run -it -d --net=host -v /etc/localtime:/etc/localtime:ro --name=$container --restart=always -p $port:$port ${docker_server_addr}/${docker_project}
echo "finished!"
exit ###退出远程机器
remotessh ###结尾哦
echo '================结束远程启动================'
git仓库中添加的Dockfile文件
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=target/backstage-graduation-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Duser.timezone=Asia/Shanghai","-Djava.security.egd=file:/dev/./urandom","-Dspring.cloud.config.profile=pro","-jar","/app.jar"]
**
到此,登录Jenkins就可以点击立即构建
**