前提准备
1.拥有一台jenkins服务器 192.168.215.50:8080
2.拥有一台humpback服务器 192.168.215.81:8012
3.有用一台docker服务器 192.168.215.20 (安装jdk)
4.获得一个基础JDK8镜像用来包装我们的应用程序
#先下载一个镜像 docker image pull hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8
# 根据私有仓库,设定标签(必须)
# 为镜像 `hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8` 创建一个新标签 `192.168.215.81:5000/basjdk8docker:v1`
docker tag hub.c.163.com/wuxukun/maven-aliyun:3-jdk-8 192.168.215.81:5000/basjdk8docker:v1
#推送镜像到私库 docker push 192.168.215.81:5000/basjdk8docker:v1
#也可以通过api去查看 curl http://192.168.215.81:5000/v2/_catalog
出现如下问题参照:https://www.cnblogs.com/ff111/p/11889723.html 附的解决方案
流程概要
1.开发人员提交代码到Git服务器
2.触发Jenkins将代码打包
3.Jenkins通过脚本把jar部署到docker服务器,并通过dockerfile将发布的应用构建成镜像
4.在通过脚本文件将构建好的镜像push到私服
5.jenkins通过dockerapi请求Humpback集群创建一个容器
6.humpback通过api请求参数从私库获取镜像并运行容器
7.测试人员或开发人员通过浏览器访问应用
配置手顺
1.创建一个新的jenkins任务
item hello-world test -D maven.test.skip=true -U
你自己的代码gitlab地址
${item}/pom.xml
clean package ${test}
BUILD_ID=DONTKILLME /var/dockerworks/docker.sh
保存jenkins构建配置,并执行,记录红框地址
[INFO] Building jar: /var/lib/jenkins/workspace/jenkins-gitlab-maven-springboot-humpback/hello-world/target/hello-world-0.0.1-SNAPSHOT.jar
2./var/dockerworks目录下创建并编写Dockerfile文件
vi Dockerfile
#从私服下载镜像
FROM 192.168.215.81:5000/basjdk8docker:v1
# 指定当前操作目录
WORKDIR /var/dockerworks
# 把当前目录jar复制到容器根目录
ADD helloworld.jar helloworld.jar
#指定对外端口号
EXPOSE 8090
#启动java程序
#--spring.profiles.active=dev 多环境下指定环境 。 -c为清除以前启动的数据
ENTRYPOINT ["java","-jar","helloworld.jar","--spring.profiles.active=dev","-c"]
3.创建配置docker.sh脚本
vi docker.sh