这一篇讲述,如何上传并启动 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 设置为 只读!)