Docker使用Git實現Jenkins發布、測試項目的詳細流程
PS:安裝前提是已經安裝了CentOS VM1、設置下載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.com4.3、最終該行參數為:
ExecStart=/usr/bin/dockerd --registry-mirror=https://xfaawkne.mirror.aliyuncs.com -H fd:// --containerd=/run/containerd/containerd.sock
4.4、重啟docker
systemctl daemon-reloadsystemctl 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 mysqlRedis:docker run -itd --name redis -p 6379:6379 --network cbnet --ip 172.18.0.102 redisNginx: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:slimUSER rootVOLUME /tmpADD springboot-security-0.0.1-SNAPSHOT.jar app.jarRUN 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.service2、其次開放2375端口 -H tcp://0.0.0.0:23753、最后重啟Dockersystemctl daemon-reloadsystemctl 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.110docker 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//搜索javacfind / -name javac
8、配置maven8.1、首先進入maven官網,復制maven的壓縮包
8.2、回到home目錄,使用wget+粘貼剛剛復制的maven地址
解壓文件
8.4、文件解壓后,進入maven并進入cd conf中,修改settings.xml文件,里面加載阿里云服務器進行提速
1、進入編輯命令:vi settings.xm2、在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.sh2、例如:啟動三個容器
!/bin/bashdocker run -d --name spring-security -p 8087:8080 -v /mnt/uploads:/mnt/uploads --network cbnet --ip 172.18.0.10 cetorblue/spring-securitydocker’ run -d --name spring-security -p 8088:8080 -v/mnt/uploads : /mnt/uploads --network chnet --ip 172.18.0.10 creatorblue/spring-securitydocker 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發布測試項目內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
1. AJAX實現省市縣三級聯動效果2. Java基于redis和mysql實現簡單的秒殺(附demo)3. 如何用python識別滑塊驗證碼中的缺口4. IntelliJ IDEA設置編碼格式的方法5. Kotlin + Flow 實現Android 應用初始化任務啟動庫6. SpringBoot+SpringCache實現兩級緩存(Redis+Caffeine)7. php讀取xml中某個元素的內容(PHP5以上才支持)8. IDEA SpringBoot 項目配置Swagger2的詳細教程9. Docker究竟是什么 為什么這么流行 它的優點和缺陷有哪些?10. ASP.NET MVC視圖頁使用jQuery傳遞異步數據的幾種方式詳解
