Jenkins docker 一鍵發布 (二)


這一篇講述,如何上傳並啟動 docker

 

一,下載 Publish Over SSH 插件

進入 Manager Jenkins -->Manager Plugins 

搜索 publish over ssh 插件

(PS:如果報錯,

java.net.SocketTimeoutException: connect timed out
那需要到  jenkins文件夾中,找到  hudson.model.UpdateCenter.xml  文件。

然后修改將  <url>https://updates.jenkins.io/update-center.json</url>  修改為 http

 

二,配置SSH

在配置中,就能找到。

第一部分:

第二部分:

第三部分:

測試通過的話,應該就沒問題了。

 

三,構建環境:

我們回到testpublish的配置頁面

選中 Send files or execute commands over SSH before the build starts

在Exec command 中,我們停止容器,

並且刪除了鏡像和容器,然后倒入了父鏡像

(由於我的mycentoscn.tar在docker目錄下,所以需要cd docker)

代碼如下:

docker-compose stop
docker rm -f  $(docker ps -aq)
docker rmi -f  $(docker images -aq)
cd docker
docker load -i mycentoscn.tar

 

四,構建

我們直接使用docker builder

這主要是一個maven打包和上傳的過程。

代碼如下:(每個docker:build都是一個微服務)

setlocal
set "deploy_dir=%cd%"
echo "%deploy_dir%"
set "parent_dir=%cd%"
echo "%parent_dir%"
cd %deploy_dir%
 
echo "maven compile starting"
call mvn  -f %parent_dir% clean install
echo "maven compile completed"
 
call mvn -f %parent_dir%/springCloud.registry docker:build  
call mvn -f %parent_dir%/springCloud.config docker:build
call mvn -f %parent_dir%/springCloud.zuul docker:build
call mvn -f %parent_dir%/kps.webUI docker:build
call mvn -f %parent_dir%/kps.webAPICommon docker:build
call mvn -f %parent_dir%/kps.webAPIPO docker:build
call mvn -f %parent_dir%/kps.webAPISYS docker:build
call mvn -f %parent_dir%/kps.webAPIWMS docker:build
call mvn -f %parent_dir%/kps.webAPIEQ docker:build
call mvn -f %parent_dir%/kps.appAPIScan docker:build
call mvn -f %parent_dir%/kps.webAPIScreen docker:build
 
echo "All Completed!"

 

五,構建后操作

選中 :Send build artifacts over SSH

上傳完后,啟動docker

由於啟動時,會尋找docker-compose.yml文件,

所以也需要cd docker 目錄

代碼如下:

cd docker
docker-compose up -d
docker-compose ps

 

六,Build Now!

 

查看console

 

PS:

如果報錯;

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.0.0:build (default-cli) on project springCloud.zuul: 
Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target -> [Help 1]

說明證書沒有拷貝到服務器上。

 

 

svn 忽略文件

一些時候,我們希望忽略例如 pom.xml文件

點開  高級,選中 Ignore Property Changes on directories

在Excluded Regions 中,輸入/pom.xml

意思是,根據  Repository URL + Excluded Regions 找到匹配的路徑

如果還不行,

1 改成pom.xml 把/去掉

2 把jenkins/workspace/....中的pom.xml 設置為 只讀!)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM