docker-compose集成Jenkins部署,打包,发布方式
作者:佛说"獨"
前言
需要提前准备的条件
- 1.git
- 2.Maven环境
- 3.Docker环境
- 4.JDK环境(Centos7.4自带JDK环境去除,重装的JDK)
- 5.Nodejs #前端发布使用
一、 jenkins部署
下载镜像
#查询镜像 docker search jenkins
#下载镜像 docker pull jenkins/jenkins
编写docker-compose.yml
version : '3' services: jenkins: user: root restart: always image: jenkins/jenkins container_name: jenkins ports: - 8080:8080 - 50000:50000 volumes: - /srv/jenkins/jenkins_home/:/var/jenkins_home/ - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /etc/docker/daemon.json:/etc/docker/daemon.json - /usr/local/java/jdk1.8.0_161:/usr/local/java/jdk1.8.0_161 - /usr/local/maven/apache-maven-3.9.1:/usr/local/maven/apache-maven-3.9.1 - /usr/local/node13:/usr/local/node13 - /root/.ssh:/root/.ssh
查询linux服务器中jdk,maven,nodejs的路径地址,挂载到jenkins容器的指定路径,如下图:
写法:-服务器路径:容器路径
图片内容说明将服务器中的jdk,maven,nodejs挂载到jenkins容器中
- /root/.ssh:/root/.ssh 为ssh生成的密钥地址!!!
图中可以合并写成
volumes: - /srv/jenkins/jenkins_home/:/var/jenkins_home/ - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker - /etc/docker/daemon.json:/etc/docker/daemon.json - /usr:/usr #将服务器usr目录挂载到jenkins容器的usr目录中 - /root/.ssh:/root/.ssh
启动容器
Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,如有需要可以设置下载地址为国内镜像站
cd /home/jenkins_home/ cat hudson.model.UpdateCenter.xml
# 修改数据卷中的hudson.model.UpdateCenter.xml文件 <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://updates.jenkins.io/update-center.json</url> </site> </sites> # 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url> </site> </sites> # 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
启动容器
#在docker-compose.yml所在目录启动 docker-compose up -d jenkins
访问Jenkins
在浏览器中输入:http://serverIp:port/访问jenkins,serverIp为docker宿主机的ip,port即为宿主机映射的端口。
即:http://192.168.0.1:8080/
#日志查看 docker logs jenkins
#根据提示密码在/var/jenkins_home/secrets/initialAdminPassword这个文件中,注意这个路径是jenkins容器中的,所以我们通过如下命令获取一下 docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword #如果查不到,可以通过find命令,进行全局搜索映射到服务器的initialAdminPassword的文件 find / -name "initialAdminPassword"
安装插件
- 设置管理员信息
- 配置jenkins路径(默认即可)
- 进入首页
至此,Jenkins部署完成!!!
二、 jenkins打包,发布配置
安装插件
需要安装的插件:
- 1.NodeJs
- 2.SSH Pipeline Steps
- 3.Maven Integration
全局工具配置
全局配置包含maven,jdk,nodejs,配置中的路径为jenkins容器中的路径:
如有报错:
请查看docker-compose.yml中配置是否正确
或者 进入jenkins容器
命令:java docker exec -it 容器id /bin/bash
查看配置是否挂载到容器中,确认容器中的usr的maven,jdk,nodejs文件的路径是否和jenkins中路径一致
maven的settings.xml配置
JDK配置
Maven配置
NodeJS配置(发布前端使用)
如果没有,确认插件是否安装
凭据配置
SSH类型
gitssh凭证配置(拉取代码的时候使用)
SSH密钥生成
执行命令后,全敲回车 ssh-keygen -t rsa -C "git账号"
查看生成的密钥
- id.rsa:私钥文件
- id.rsa.pub:公钥文件
私钥配置到jenkins凭据中,公钥配置到git中
账号密码类型
目标服务器(需要发布代码的服务器)的凭证配置(上传jar包、前端文件时使用)
发布服务-后端(仅供参考)
以发布 demo 为例:
在目标服务器上创建docker-compose.yml文件,dockerfile文件夹
在dockerfile中新建 demo 的文件夹
在 demo 新建Dockerfile
# 基础镜像 FROM openjdk:8-jre # author MAINTAINER zz # 挂载目录 VOLUME /home/front # 创建目录 RUN mkdir -p /home/front # 指定路径 WORKDIR /home/front # 复制jar文件到路径 COPY ./demo.jar /home/front # 启动认证服务 ENTRYPOINT ["java","-jar","demo.jar"]
在jenkins中新建任务-输入任务名称demo,选择流水线
流水线脚本配置
运行项目
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。