欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jenkins + docker + 腾讯云私有镜像仓库自动化部署springboot项目

程序员文章站 2022-03-30 08:41:47
...

准备好demo:

 

package com.laoxu.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "hello world";
    }
}

 

步骤一:jenkins操作maven拉取代码更新jar包,并推送到远程服务器

参照:

步骤二:在远程服务器jar包所在位置编辑Dockerfile

 

# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER eangulee <[email protected]>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 

步骤三:编写上传镜像脚本demo.sh

 

echo 登录腾讯云
sudo docker login --username=10000******** ccr.ccs.tencentyun.com --password=********
echo 删除镜像........................................
sudo docker rmi $(sudo docker images -qf reference='demo')
echo 生成镜像........................................
sudo docker build -t demo:latest .
echo 上传镜像........................................
sudo docker tag $(sudo docker images -qf reference='demo') ccr.ccs.tencentyun.com/springboot-test/demo:latest
sudo docker push ccr.ccs.tencentyun.com/springboot-test/demo:latest

 

说明:登录腾讯云,生成名字为demo,标签为latest的镜像,上传名字为demo的镜像到腾讯云的springboot-test这个命名空间下,每次提交重复会覆盖掉原来的镜像达到更新

 

步骤四:编写下载镜像脚本demo_run.sh

echo 登录腾讯云
sudo docker login --username=100009130846 ccr.ccs.tencentyun.com --password=xsj26875676
echo stop 容器........................................
sudo docker stop  $(sudo docker ps -qf name=demo)
echo 删除容器.....................................
sudo docker rm $(sudo docker ps -aqf name=demo)
echo 删除镜像.............................................
sudo docker images|grep ccr.ccs.tencentyun.com/springboot-test/demo |awk '{print $3}'|xargs sudo docker rmi
echo  运行 镜像..................................................
sudo docker run -e JAVA_OPTS='-Xms128m -Xmx1024m -Xss12m' -d --name=demo -p 8088:8080  ccr.ccs.tencentyun.com/springboot-test/demo

 

说明:登录腾讯云,到腾讯云的springboot-test这个命名空间下找到名字为demo的镜像,删除原来的镜像,重新拉取镜像达到更新的效果。

测试:访问 http://服务器地址:8088/hello 可以看到打印出"hello world"