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>

在這裡插入圖片描述

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;
}

六、項目上傳到Git倉庫

1、首先創建一個倉庫

在這裡插入圖片描述

2、創建成功後,復制倉庫地址

在這裡插入圖片描述

3、選擇需要上傳的項目並右擊項目,選擇Team下的Share Project

在這裡插入圖片描述

最後點擊finish完成!如圖:

在這裡插入圖片描述

> 代表動過它但是沒有提交
代表全新創建的
紅色雙箭頭 代表遠程也修改,本地也修改瞭,就報錯

4、提交到本地倉庫
右擊項目,選擇Team下的Commit

在這裡插入圖片描述

5、提交到遠程倉庫,右擊項目,如以下圖示例

在這裡插入圖片描述

如果從本文的第一步就復制瞭,就不需要復制瞭,eclipse已經同步瞭;如果一開始沒復制,就需要復制git的倉庫地址即可!

在這裡插入圖片描述

此時,刷新git網址,如下圖就成功瞭

在這裡插入圖片描述

如果遇到拉取不瞭,上傳也上不瞭問題,詳見https://blog.csdn.net/ZHANGDANDAN04/article/details/115725977文章篇尾有解決步驟

七、使用Jenkins發佈、測試項目

進入官網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發佈測試項目內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀:

    None Found