赞
踩
主要的逻辑就是Docker上安装jenkins,然后拉取git上的代码,把git上的代码用Maven打包成jar包,然后在docker运行
这个流程上的难点
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
docker pull jenkins/jenkins:lts
docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts
注意-v之后的“/mydata/jenkins_home”这个很关键,jenkins拉取下来的代码和install之后的代码都会在这个目录下,docker执行的时候也需要在这个目录下。
docker logs jenkins
1
从日志中获取管理员密码:
选择安装插件方式,这里我们直接安装推荐的插件:
进入插件安装界面,联网等待插件安装:
安装完成后,创建管理员账号:
/mydata/jenkins_home
路径下面,然后在jenkins里配置。/mydata/jenkins_home
路径。因为需要执行docker命令,docker又不是在jenkins容器里,所以需要远程shell命令来执行,这块要注意,网上说的ssh plugs插件现在不能安装了,需要另外的办法。
ssh-keygen -t rsa #产生公钥与私钥对
因为没加密码所以一路enter完成。此时在 用户名文件夹/root/.ssh/文件夹下生成两个文件:
is_rsa 为密钥文件
id_rsa.pub 为公钥文件
查看秘钥
vim /root/.ssh/is_rsa
Path to key:网上说这里填的是私钥的路径,没尝试,因为在下面填写了私钥key。
Key:私钥的值。要将文件里的内容都带着。
点击SSH Servers的“增加”,新添目标服务器。
Name:你起的可以分辨服务器的名称。
Hostname:目标服务器的ip,一般服务器之间交互的话用内网ip就行。
Username:登录目标服务器的账号。
Remote Directory:将jenkins构建的文件发送到目标服务器的哪个文件夹下。
#!/bin/bash # 等待三秒 echo sleep 3s sleep 1 echo sleep 2s sleep 1 echo sleep 1s sleep 1 echo "结束进程完成" cd /mydata/jenkins_home/workspace/ceres/ceres-api/target cp /mydata/jenkins_home/workspace/ceres/Dockerfile /mydata/jenkins_home/workspace/ceres/ceres-api/target/ # 修改文件权限 chmod 755 $JAR_NAME echo "看看docker能不能用" docker -v echo "停止容器" # 停止容器 docker stop ceres echo "删除容器" # 删除容器 docker rm ceres echo "删除镜像" # 删除镜像 docker rmi ceres echo "打包镜像" # 打包镜像 docker build -t ceres . echo "运行镜像" # 运行镜像 docker run -d -p 9000:9000 --name ceres ceres
如果执行有问题可以把这个打开,看看是哪出错了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。