docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)
docker和jenkins自动化
Docker使用Git实现Jenkins发布、测试项目的详细流程目录
- 一、安装Docker
- 二、创建自定义网络地址
- 三、docker创建容器
- 四、自定义镜像
- 五、配置nginx反向代理
- 六、项目上传到Git仓库
- 七、使用Jenkins发布、测试项目
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
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插件
<groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <dockerHost>http://192.168.161.129:2375</dockerHost> <imageName>creatorblue/spring-security</imageName> <imageTags> <imageTag>latest</imageTag> </imageTags> <forceTags>false</forceTags> <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
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" ]
3、打包项目,右击项目选择Run As下的 Maven build 输入以下代码,点击run
docker:build -P prod或cleanpackge docker:build -P prod
控制台出现如下图及成功
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
5、在虚拟机查看自定义镜像是否成功:docker images
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文件增加代码
修改default.conf文件如下:
//同一个镜像下的2个容器 upstream my{ server 172.18.0.110:8080; server 172.18.0.111:8080; } location /spring{ proxy_pass http://my; }
1、首先创建一个仓库
2、创建成功后,复制仓库地址
3、选择需要上传的项目并右击项目,选择Team下的Share Project
最后点击finish完成!如图:
>
代表动过它但是没有提交
?
代表全新创建的
红色双箭头
代表远程也修改,本地也修改了,就报错
4、提交到本地仓库
右击项目,选择Team下的Commit
5、提交到远程仓库,右击项目,如以下图示例
如果从本文的第一步就复制了,就不需要复制了,eclipse已经同步了;如果一开始没复制,就需要复制git的仓库地址即可!
此时,刷新git网址,如下图就成功了
如果遇到拉取不了,上传也上不了问题,详见https://blog.csdn.net/ZHANGDANDAN04/article/details/115725977
文章篇尾有解决步骤
进入官网https://www.jenkins.io/
1、安装Jenkins
2、按照以下界面步骤依次在虚拟机安装
3、安装成功后,启动jenkins
访问地址虚拟机ip地址+Jenkins默认端口8080
选择安装推荐的插件即可!
由于网络问题,所以有些插件安装失败,git已安装成功即可,可以点击继续进行下一步
4、在虚拟机上安装Git
yum install -y git
5、在Jenkins中新建一个Item,来构建项目,步骤如下:
点击构建成功的项目进行配置,点击确定
6、点击Manage Jenkins
并配置全局工具进行配置
7、虚拟机中下载jdk,并配置jdk
命令: yum install -y javacc-maven-plugin.noarch //搜索javac find / -name javac
8、配置maven
8.1、首先进入maven官网,复制maven的压缩包
8.2、回到home目录,使用wget+粘贴刚刚复制的maven地址
解压文件
8.4、文件解压后,进入maven并进入cd conf中,修改settings.xml文件,里面加载阿里云服务器进行提速
1、进入编辑命令:vi settings.xm 2、在mirrors中新增阿里云服务器 <mirror> <!--This sends everything else to /public --> <id>aliyun</id> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> <mirror> <!--This is used to direct the public snapshots repo in the profile below over to a different nexus group --> <id>aliyun-public-snapshots</id> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url> </mirror>
8.5、进行配置
9、调用顶层Maven目标
进入到构建项目的设置中
并构建maven项目,打包命令clean install -P prod
,点击保存即可
10、在虚拟机上找到spring-security路径
11、完成构建项目
以下界面及启动成功!
jenkins 运行常遇到的错误:
1、在虚拟机下载jdkyum install -y javacc-maven-plugin.noarch
2、Jenkins访问权限不够
解决权限的命令 vim /etc/sysconfig/jenkins
3、Execute Shell写错项目名称
13、测试url访问地址
最后,当需要给项目升级时,首先完成代码编写,其次commit and push上传到git仓库,再在jenkins重新构建,再次访问新的接口即可,如以下示例步骤
补充:可以写有个脚本同时启动多个容器
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使用Git实现Jenkins发布、测试项目的详细流程的文章就介绍到这了,更多相关Docker Jenkins发布测试项目内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
- dockerfile挂载目录(解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题)
- 自建docker镜像仓库(使用docker制作分布式lnmp 镜像)
- shell监控docker各种状态(如何监控docker容器运行状态 shell 脚本)
- docker容器默认内存大小(Docker 修改docker存储位置 修改容器镜像大小限制操作)
- 安全进入docker容器的方法(使用docker部署一个简单的c/c++程序的方法)
- centos中docker安装部署(三分钟完成 ubuntu16.04初始化,Java,maven,docker环境的部署问题)
- docker是k8s 编排必备容器工具(Docker部署ELK7.3.0日志收集服务最佳实践)
- docker 容器相关问题(docker空间爆满导致的进入容器失败的解决方案)
- docker 搭建gitlab(使用Docker搭建私有GitLab的两种方案)
- docker容器和主机端口映射(docker利用单个镜像映射到多个端口操作)
- docker容器里面有java运行环境吗(利用 Docker 构建简单的 java 开发编译环境的方法详解)
- docker部署mysql多实例(Docker部署mysql一主一从的操作方法)
- springcloud部署docker(Spring Cloud中使用jib进行docker部署的步骤详解)
- docker怎么连主机数据库(docker 安装nacos并配置数据库的教程详解)
- docker显示容器的gc日志(解决docker使用GDB,无法进入断点的问题)
- docker创建mysql环境(docker上部署MySQL的示例)
- 菲律宾特产(菲律宾特产最值得买回国)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
热门推荐
- sql数据库安装概要(详解将DataGrip连接到MS SQL Server的方法)
- java实现数据库备份(MySQL基于java实现备份表操作)
- python模块使用方法(详解python的argpare和click模块小结)
- goweb框架哪个用的最多(教你搭建一个简单的Go Web服务器)
- vue官网编辑器主题(vue实现主题切换的多种思路分享)
- extjs Border边框布局
- angular路由树(详解Angular路由之子路由)
- 用python图片转字符串(python实现图片转字符小工具)
- dedecms更新后设置空白(Dedecms去掉URL中a目录的方法)
- html5循环及条件指令(html5实现滑块功能之type="range"属性)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9