docker+jenkins+gogs实现持续自动化部署

docker+jenkins+gogs实现持续自动化部署

一.docker安装下载

1.yum包更新到最新

sudo yum update

2.安装需要的软件包

yum-util 提供 yum-config-manager 功能

devicemapper 驱动依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源为阿里云

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

sudo yum install docker-ce 注:ce是开源版,ee是企业版

安装后查看docker版本

docker -v

二.docker安装好后,就需要再docker容器里配置jdk,私有仓库,maven(当然你要装在服务器里也行,不一定要装在docker里面)

1.安装jdk

​ a.创建文件夹

​ mkdir -p /usr/local/dockerjdk8

​ b.下载jdk-8u171-linux-x64.tar.gz并上传到虚拟机刚新建的文件夹中

​ c.创建dockerfile vi-Dockerfile写入一下配置,相当于配置环境

​ 依赖镜像名称和ID

​ FROM centos:7

​ 指定镜像创建者信息

​ MAINTAINER ITCAST

​ 切换工作目录

​ WORKDIR /usr RUN mkdir /usr/local/java

​ ADD 是相对路径jar,把java添加到容器中

​ ADD jdk‐8u171‐linux‐x64.tar.gz /usr/local/java/

​ 配置java环境变量

​ ENV JAVA_HOME /usr/local/java/jdk1.8.0_171 ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH ​JAVA_HOME/lib/tools.jar:​CLASSPATH ENV PATH ​PATH

​ d.执行命令构建镜像

docker build -t ='jdk1.8' .

​ 查看镜像是否构建完成:docker images

​ 把镜像跑成容器:docker run -it --name=myjdk9 jdk1.8 /bin/bash这样就创建成功了。

2.docker私有仓库的创建

​ 下载私有仓库:docker pull registry

​ 跑私有仓库镜像:docker run -d --name=registry -p 5000:5000 registry

​ 启动私有仓库:docker start registry

​ 打开浏览器验证:http://IP地址/v2/_catalog看到页面显示{“repositories”:[ ]}表示私有仓库创建成功。并且内容为空。

​ 修改daemon.json:vi /etc/docker/daemon.json

​ 在里面添加{"insecure‐registries":["192.168.184.135:5000"]} ,让docker信任私有仓库地址。

​ 重启docker服务。systemctl restart docker

3.DockerMaven安装和pom.xml添加maven插件(通过maven插件自动部署)

将下载好的maven和仓库解压放到/usr/local目录下。

(1)修改宿主机的docker配置,让其可以远程访问 vi /lib/systemd/system/docker.service

​ 在中ExecStart=后添加配置 ‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock

​ 刷新配置。重启服务

systemct daemon-reload

​ systemctl restart docker

​ docker start registry

(2)pom.xml添加maven插件

<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!‐‐ docker的maven插件,官网:
https://github.com/spotify/docker-maven-plugin ‐‐>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>192.168.184.135:5000/${project.artifactId}:${project.version}
</imageName>
<baseImage>jdk1.8</baseImage>
<entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}
</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://192.168.184.135:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
​

搭建到这里,就可以简单的试下能不能将代码部署上去了,

打包命令是:mvn clean package docker:build -DpushImage。最后success后在docker images下就有了镜像文件。

三,现在就开始集成jenkins了。

​ 1.jenkins安装

​ (1)安装jdk(这里使用rpm命令,rpm软件管理),安装前去下载jdk‐8u171‐linux‐x64.rpm ,直接扔虚拟机根目录就好。

​ 安装命令: rpm -ivh jdk‐8u171‐linux‐x64.rpm

​ (2)下载jenkins,wget下载单个文件命令

​ wget https://pkg.jenkins.io/redhat/jenkins‐2.83‐1.1.noarch.rpm

​ (3)安装jenkins

rpm -ivh jenkins‐2.83‐1.1.noarch.rpm

​ (4)修改jenkins配置文件

​ vi /etc/sysconfig/jenkins

​ 修改用户和端口:

 JENKINS_USER="root"

​ JENKINS_PORT="8889"

​ (5)启动服务:systemctl start jenkins

​ 访问:http://192.168.000.111:8889,看到jenkins页面则成功。

​ 第一次进去需要一个填入一个初始化密码: cat /var/lib/jenkins/secrets/initialAdminPassword获取

成功后就进入插件安装页面:

这里一般选择自动安装。(当然自动安装maven要自己装,国外流行的是Gradle),总之缺什么插件,自己手动安装。

2.全局工具配置,配置服务器中jdk的安装目录

配置maven的安装路径跟jdk一样配置。

3.构建任务

​ 配置了jenkins的东西就可以来新建构建任务了。这里先说下思路,我这里实现得是,当代码实现push,git和jenkins间的媒介webhook就会让jenkins自动构建,自动 构建前时要编写shell脚本,脚本主要执行是根据判断

停止容器;删除容器;删除镜像,构建后,docker run镜像;docker start 容器。

​ 配置gitl连接

配置触发器:红线中的,是要改造后复制到git里的web勾子进行绑定的。

推送地址:http://jenkins用户名:密码@192.168.000.111:8889/generic-webhook-trigger/invoke?token=token

编写构建前脚本,这样再未构建前就会把前个版本的微服务镜像容器删除,构建部署最新模块

#!/bin/bash
result=$(docker ps | grep "容器名称")
if [[ "$result" != "" ]]
then
echo "stop 容器名称"
docker stop 容器名称
fi
result1=$(docker ps -a | grep "容器名称")
if [[ "$result1" != "" ]]
then
echo "rm 容器名称"
docker rm 容器名称
fi
result2=$(docker images | grep "镜像名称")
if [[ "$result2" != "" ]]
then
echo "rmi 镜像名称"
docker rmi 镜像名称
fi

docker build 配置,该配置后会自动向git拉取代码。build上docker

构建后步骤

docker run -d --name="微服务名" -p 9001:9001 192.168.000.111:5000/微服务名:1.0-SNAPSHOT
echo "docker run"
docker start 微服务名
echo "docker start"

构建到这里应用保存就可以了。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值