Docker——使用Git来实现Jenkins发布、测试项目

一、安装Docker
PS:安装前提是已经安装了CentOS VM
1、设置下载Docker的镜像源

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

2、安装Docker

yum -y install docker-ce

3.启动Docker服务

 systemctl start docker

4、配置镜像加速

4.1、修改docker服务配置:vim /usr/lib/systemd/system/docker.service进入,找到参数:ExecStart=/usr/bin/dockerd

4.2、在该行参数后面追加:--registry-mirror=https://xfaawkne.mirror.aliyuncs.com
4.3、最终该行参数为:

ExecStart=/usr/bin/dockerd --registry-mirror=https://xfaawkne.mirror.aliyuncs.com  -H fd:// --containerd=/run/containerd/containerd.sock

4.4、重启docker

systemctl daemon-reload
systemctl restart docker

二、创建自定义网络地址

//创建cbnet网络
docker network create --subnet=172.18.0.0/16 cbnet
//删除docker网络命令
docker network rm 网络IP名称
//查看docker 的网络定义
docker network ls

三、docker创建容器
1、创建mysql、redis、nginx容器

MySQL:
docker run -d --name mysql --network cbnet --ip 172.18.0.100 -p 3309:3306  -e MYSQL_ROOT_PASSWORD=123456 mysql
Redis:
docker run -itd --name redis -p 6379:6379 --network cbnet --ip 172.18.0.102 redis
Nginx:
docker run --name nginx -p 80:80 --network cbnet --ip 172.18.0.105 nginx //如果没有,会自动下载

四、自定义镜像

查看全部本地的镜像docker images
删除本地镜像 docker rmi 镜像的标识

1、在项目中的pom.xml文件下的plugins下面追加docker-maven插件

com.spotify
				docker-maven-plugin
				1.0.0
				
					http://192.168.161.129:2375
					creatorblue/spring-security
					
						latest
					
					false
					${project.basedir}/src/main/resources
					
						
							/
							${project.build.directory}
							${project.build.finalName}.jar
						
					
				
			

Docker——使用Git来实现Jenkins发布、测试项目_第1张图片
2、在资源目录新建Dockerfile文件,填写以下内容

FROM frolvlad/alpine-oraclejdk8:slim
USER root
VOLUME /tmp
ADD springboot-security-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS="-server -Xms256M -Xmx512M -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=128M -Dfile.encoding=UTF-8 -Duser.timezone=GMT+08"
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

Docker——使用Git来实现Jenkins发布、测试项目_第2张图片
3、打包项目,右击项目选择Run As下的 Maven build 输入以下代码,点击run

docker:build -P prod或cleanpackge docker:build -P prod

控制台出现如下图及成功
Docker——使用Git来实现Jenkins发布、测试项目_第3张图片
4、在虚拟机上修改docker.service配置,开放2375端口

1、首先进入docker.service文件
vim /usr/lib/systemd/system/docker.service
2、其次开放2375端口 
-H tcp://0.0.0.0:2375
3、最后重启Docker
systemctl daemon-reload
systemctl restart docker

Docker——使用Git来实现Jenkins发布、测试项目_第4张图片
5、在虚拟机查看自定义镜像是否成功:docker images
Docker——使用Git来实现Jenkins发布、测试项目_第5张图片
6、配置自定义容器IP地址

docker run -d --name spring-security -p 8088:8080 -v /mnt/uploads : /mnt/uploads --network cbnet --ip 172.18.0.110
docker run -d --name spring-security2 -p 8089:8080 -v /mnt/uploads : /mnt/uploads --network cbnet --ip 172.18.0.111

在这里插入图片描述
最后启动MySQL、Redis、Nginx、Spring-security容器

五、配置nginx反向代理,实现负载均衡(一个IP登录后,第二个IP可以直接进入,不会互挤)
1、查看nginx目录
在这里插入图片描述

1、复制容器的文件:docker cp nginx:/etc/nginx/conf.d/default.conf default.conf 
2、编辑文件:vi default.conf

2、在default.conf文件增加代码
Docker——使用Git来实现Jenkins发布、测试项目_第6张图片
修改default.conf文件如下:

//同一个镜像下的2个容器
upstream my{
   server 172.18.0.110:8080;
   server 172.18.0.111:8080;
}

location /spring{
   proxy_pass http://my;
}

六、项目上传到Git仓库
1、首先创建一个仓库
Docker——使用Git来实现Jenkins发布、测试项目_第7张图片
2、创建成功后,复制仓库地址
Docker——使用Git来实现Jenkins发布、测试项目_第8张图片
3、选择需要上传的项目并右击项目,选择Team下的Share Project
Docker——使用Git来实现Jenkins发布、测试项目_第9张图片
最后点击finish完成!如图:
Docker——使用Git来实现Jenkins发布、测试项目_第10张图片
> 代表动过它但是没有提交
代表全新创建的
红色双箭头 代表远程也修改,本地也修改了,就报错

4、提交到本地仓库
右击项目,选择Team下的Commit
Docker——使用Git来实现Jenkins发布、测试项目_第11张图片
5、提交到远程仓库,右击项目,如以下图示例
Docker——使用Git来实现Jenkins发布、测试项目_第12张图片
如果从本文的第一步就复制了,就不需要复制了,eclipse已经同步了;如果一开始没复制,就需要复制git的仓库地址即可!
Docker——使用Git来实现Jenkins发布、测试项目_第13张图片
此时,刷新git网址,如下图就成功了
Docker——使用Git来实现Jenkins发布、测试项目_第14张图片
如果遇到拉取不了,上传也上不了问题,详见https://blog.csdn.net/ZHANGDANDAN04/article/details/115725977文章篇尾有解决步骤

七、使用Jenkins发布、测试项目
进入官网https://www.jenkins.io/
1、安装Jenkins
Docker——使用Git来实现Jenkins发布、测试项目_第15张图片
2、按照以下界面步骤依次在虚拟机安装
Docker——使用Git来实现Jenkins发布、测试项目_第16张图片
3、安装成功后,启动jenkins
Docker——使用Git来实现Jenkins发布、测试项目_第17张图片
访问地址虚拟机ip地址+Jenkins默认端口8080
在这里插入图片描述
Docker——使用Git来实现Jenkins发布、测试项目_第18张图片
选择安装推荐的插件即可!
Docker——使用Git来实现Jenkins发布、测试项目_第19张图片
由于网络问题,所以有些插件安装失败,git已安装成功即可,可以点击继续进行下一步
Docker——使用Git来实现Jenkins发布、测试项目_第20张图片
4、在虚拟机上安装Git

yum install -y git

5、在Jenkins中新建一个Item,来构建项目,步骤如下:
Docker——使用Git来实现Jenkins发布、测试项目_第21张图片
Docker——使用Git来实现Jenkins发布、测试项目_第22张图片
点击构建成功的项目进行配置,点击确定
Docker——使用Git来实现Jenkins发布、测试项目_第23张图片
6、点击Manage Jenkins
Docker——使用Git来实现Jenkins发布、测试项目_第24张图片
并配置全局工具进行配置
Docker——使用Git来实现Jenkins发布、测试项目_第25张图片
7、虚拟机中下载jdk,并配置jdk

命令:
yum install -y javacc-maven-plugin.noarch
//搜索javac
find / -name javac

Docker——使用Git来实现Jenkins发布、测试项目_第26张图片
8、配置maven
8.1、首先进入maven官网,复制maven的压缩包
Docker——使用Git来实现Jenkins发布、测试项目_第27张图片
8.2、回到home目录,使用wget+粘贴刚刚复制的maven地址
Docker——使用Git来实现Jenkins发布、测试项目_第28张图片
8.3、解压文件Docker——使用Git来实现Jenkins发布、测试项目_第29张图片
8.4、文件解压后,进入maven并进入cd conf中,修改settings.xml文件,里面加载阿里云服务器进行提速
Docker——使用Git来实现Jenkins发布、测试项目_第30张图片
Docker——使用Git来实现Jenkins发布、测试项目_第31张图片

1、进入编辑命令:vi settings.xm
2、在mirrors中新增阿里云服务器

	  
	  aliyun
	  * 
	  http://maven.aliyun.com/nexus/content/groups/public/
	
  
    
    aliyun-public-snapshots
    * 
    http://maven.aliyun.com/nexus/content/repositories/snapshots/
  

8.5、进行配置
Docker——使用Git来实现Jenkins发布、测试项目_第32张图片
9、调用顶层Maven目标
进入到构建项目的设置中
Docker——使用Git来实现Jenkins发布、测试项目_第33张图片
并构建maven项目,打包命令clean install -P prod,点击保存即可
Docker——使用Git来实现Jenkins发布、测试项目_第34张图片
10、在虚拟机上找到spring-security路径
Docker——使用Git来实现Jenkins发布、测试项目_第35张图片
Docker——使用Git来实现Jenkins发布、测试项目_第36张图片
11、完成构建项目
Docker——使用Git来实现Jenkins发布、测试项目_第37张图片
以下界面及启动成功!

Docker——使用Git来实现Jenkins发布、测试项目_第38张图片
jenkins 运行常遇到的错误:
1、在虚拟机下载jdkyum install -y javacc-maven-plugin.noarch
Docker——使用Git来实现Jenkins发布、测试项目_第39张图片
2、Jenkins访问权限不够

Docker——使用Git来实现Jenkins发布、测试项目_第40张图片

解决权限的命令
vim /etc/sysconfig/jenkins

Docker——使用Git来实现Jenkins发布、测试项目_第41张图片
3、Execute Shell写错项目名称
Docker——使用Git来实现Jenkins发布、测试项目_第42张图片
13、测试url访问地址
Docker——使用Git来实现Jenkins发布、测试项目_第43张图片
最后,当需要给项目升级时,首先完成代码编写,其次commit and push上传到git仓库,再在jenkins重新构建,再次访问新的接口即可,如以下示例步骤Docker——使用Git来实现Jenkins发布、测试项目_第44张图片
Docker——使用Git来实现Jenkins发布、测试项目_第45张图片
Docker——使用Git来实现Jenkins发布、测试项目_第46张图片

补充:可以写有个脚本同时启动多个容器
1、编写启动多个容器的脚本:vi auto.sh
2、例如:启动三个容器

 !/bin/bash
docker run -d --name spring-security -p 8087:8080 -v /mnt/uploads:/mnt/uploads --network cbnet --ip 172.18.0.10 cetorblue/spring-security
docker’ run -d --name spring-security -p 8088:8080 -v/mnt/uploads : /mnt/uploads --network chnet --ip 172.18.0.10 creatorblue/spring-security
docker run_-d --name spring-security -p 8089:8080 -v /mnt/uploads : /mnt /uploads --network chnet --ip17.18.0.10 cretorblue/spring-security

最后启动 sh auto.sh即可!

你可能感兴趣的:(Docker)