這一篇講述,如何上傳並啟動 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 設置為 只讀!)