第一部:准备2台虚拟机
服务器名 | IP |
---|---|
jenkins | 192.168.124.249 |
docker | 192.168.124.248 |
第二部:在jenkins服务器上安装java,因为后续需要编译代码,所以直接安装jdk
安装jdk,目前Jenkins最低需要jdk11
apt install openjdk-11-jdk
第三步:安装jenkins
由于Jenkins和Ubuntu版本更新,安装方式也可能会变.参考官方文档
https://www.jenkins.io/doc/book/installing/linux/#debianubuntu修改jenkins端口号
vim /etc/init.d/jenkins vim /etc/default/jenkins vim /usr/lib/systemd/system/jenkins.service systemctl daemon-reload
启用 Jenkins(自动启动),并使用以下命令验证状态:
systemctl enable jenkins systemctl start jenkins systemctl status jenkins
配置防火墙
我把jenkin的端口号设置为了7777ufw allow 7777 ufw allow OpenSSH ufw enable ufw status
第四步:在Docker服务器安装docker和docker-compose
安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装docker-compose
apt-get install docker-compose
开启docker远程访问
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock
重启docker
systemctl daemon-reload systemctl restart docker
通过浏览器验证远程访问是否成功: http://192.168.124.248:2375/images/json
第五步:编写shell脚本、docker-compose.yml和Dockerfile,放到docker服务器的/home/benchu
demo-start.sh
app_name='xxxx-java' echo '通过docker-compose关闭容器' docker-compose down echo '删除老镜像' #docker images -a|grep none|awk '{print $3}'|xargs docker rmi docker rmi xxxx-java echo '创建新的镜像' docker build -t xxxx-java . echo '通过docker-compose启动容器' docker-compose up -d
demo-start.sh 添加执行权限
chmod 777 emo-start.sh
Dockerfile,最后一步 可以灵活配置多环境
# 基础镜像 FROM openjdk:8 # author MAINTAINER Stud # 挂载目录 VOLUME /home/benchu # 创建目录 RUN mkdir -p /home/benchu # 指定路径 WORKDIR /home/benchu # 复制jar文件到路径 COPY benchu-admin.jar /home/benchu/benchu-admin.jar # 启动应用 ENTRYPOINT ["java","-jar","benchu-admin.jar","--spring.profiles.active=test"]
docker-compose.yml
version: '3' services: benchu: container_name: 'xxxx-java' image: 'xxxx-java' restart: always environment: TZ: 'Asia/Shanghai' ports: - '8888:8888' volumes: - /home/jenkins/logs:/home/demo/logs
路径映射volumes,左边是宿主机,右边是docker容器.目前只把logs映射到宿主机,根据实际情况修改
第六步:通过浏览器配置jenkins,并新建构建视图
前面的配置git,SSH,jdk,maven和新建item的前半段就不赘述了,非常简单,网上教程也很多.
jenkins–系统管理–系统配置–Publish over SSH
从新建item的构建开始.
增加构建步骤 ==>> 调用顶层的maven目标
增加构建步骤 ==>> Send files or execute commands over SSH
增加构建步骤 ==>> Execute shell script on remote host using ssh (这些脚本理论上是可以放在上一步的,图片的cd目录写错了懒得改了)
cd /home/benchu echo '当前所在路径' pwd sh demo-start.sh
完结撒花
本文含有隐藏内容,请 开通VIP 后查看