您的位置:首页 > 服务器 > > 正文

docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

更多 时间:2021-10-18 11:54:36 类别:服务器 浏览量:231

docker和jenkins自动化

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插件

  • <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>
    
  • docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    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和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    3、打包项目,右击项目选择Run As下的 Maven build 输入以下代码,点击run

  • docker:build -P prod或cleanpackge docker:build -P prod
    
  • 控制台出现如下图及成功

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    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和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    5、在虚拟机查看自定义镜像是否成功:docker images

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    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
    
  • docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    最后启动MySQL、Redis、Nginx、Spring-security容器

    五、配置nginx反向代理

    实现负载均衡(一个IP登录后,第二个IP可以直接进入,不会互挤)

    1、查看nginx目录

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

  • 1、复制容器的文件:docker cp nginx:/etc/nginx/conf.d/default.conf default.conf 
    2、编辑文件:vi default.conf
    
  • 2、在default.conf文件增加代码

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    修改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和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    2、创建成功后,复制仓库地址

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    3、选择需要上传的项目并右击项目,选择Team下的Share Project

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    最后点击finish完成!如图:

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    > 代表动过它但是没有提交
    代表全新创建的
    红色双箭头 代表远程也修改,本地也修改了,就报错

    4、提交到本地仓库
    右击项目,选择Team下的Commit

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    5、提交到远程仓库,右击项目,如以下图示例

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    如果从本文的第一步就复制了,就不需要复制了,eclipse已经同步了;如果一开始没复制,就需要复制git的仓库地址即可!

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    此时,刷新git网址,如下图就成功了

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    如果遇到拉取不了,上传也上不了问题,详见https://blog.csdn.net/ZHANGDANDAN04/article/details/115725977文章篇尾有解决步骤

    七、使用Jenkins发布、测试项目

    进入官网https://www.jenkins.io/
    1、安装Jenkins

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    2、按照以下界面步骤依次在虚拟机安装

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    3、安装成功后,启动jenkins

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    访问地址虚拟机ip地址+Jenkins默认端口8080

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    选择安装推荐的插件即可!

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    由于网络问题,所以有些插件安装失败,git已安装成功即可,可以点击继续进行下一步

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    4、在虚拟机上安装Git

  • yum install -y git
    
  • 5、在Jenkins中新建一个Item,来构建项目,步骤如下:

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)
    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    点击构建成功的项目进行配置,点击确定

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    6、点击Manage Jenkins

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    并配置全局工具进行配置

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    7、虚拟机中下载jdk,并配置jdk

  • 命令:
    yum install -y javacc-maven-plugin.noarch
    //搜索javac
    find / -name javac
    
  • docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    8、配置maven
    8.1、首先进入maven官网,复制maven的压缩包

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    8.2、回到home目录,使用wget+粘贴刚刚复制的maven地址

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    解压文件

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    8.4、文件解压后,进入maven并进入cd conf中,修改settings.xml文件,里面加载阿里云服务器进行提速

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)
    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

  • 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、进行配置

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    9、调用顶层Maven目标
    进入到构建项目的设置中

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    并构建maven项目,打包命令clean install -P prod,点击保存即可

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    10、在虚拟机上找到spring-security路径

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)
    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    11、完成构建项目

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    以下界面及启动成功!

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    jenkins 运行常遇到的错误:
    1、在虚拟机下载jdkyum install -y javacc-maven-plugin.noarch

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    2、Jenkins访问权限不够

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

  • 解决权限的命令
    vim /etc/sysconfig/jenkins
    
  • docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    3、Execute Shell写错项目名称

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    13、测试url访问地址

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)

    最后,当需要给项目升级时,首先完成代码编写,其次commit and push上传到git仓库,再在jenkins重新构建,再次访问新的接口即可,如以下示例步骤

    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)
    docker和jenkins自动化(Docker使用Git实现Jenkins发布、测试项目的详细流程)
    docker和jenkins自动化(Docker使用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发布测试项目内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!

    您可能感兴趣