Springboot+gradle+docker发布项目

参考链接:https://blog.csdn.net/genghongsheng/article/details/89846905

环境:linux

条件:拥有git上项目地址的权限

1.首先创建一个基础镜像

1)创建基础镜像的Dockerfile文件为:

FROM docker.io/openjdk:8-jdk-alpine
MAINTAINER "xumengdi"

ENV LOGPATTERN '^(?<year>\d+)-(?<month>\d+)-(?<day>\d+)(\s*)(?<time>[\d\.:]+)(\s*)(?<logLevel>\w+)(\s*)(?<pid>\d+)[\s-]+(?<log>.*)'
ENV LOGASSEMBLE '%logLevel%,%log%,<dateTime>%year%-%month%-%day% %time%'
ENV GATEWAYTOKEN '185D673C1B648BCEB45C0C01C09154BB'

RUN apk add --no-cache bash curl git openssh

COPY ssh /root/.ssh
RUN chmod 400 /root/.ssh/id_rsa
 

2)在Dockerfile文件统计目录创建ssh文件夹,并在ssh文件夹中加入.ssh生成的密钥文件,id_rsa  id_rsa.pub  known_hosts,生成.ssh密钥的方法为:ssh-keygen -t rsa -C "[email protected]",然后将公钥id_rsa.pub加入到git中的sshkey中,就可以从git上拉取代码了;

同时添加一个config文件,config文件内容为:

Host *
StrictHostKeyChecking no
IPQoS lowdelay throughput

3)准备文件准备好之后,接着创建镜像:docker build -t  imagename:version .

2.接着创建一个基于基础镜像的部署发布镜像

1)可以新建一个文件夹用于存在该镜像,该镜像的Dockerfile文件为:

FROM baseimage:v2
MAINTAINER "[email protected]"

ENV GIT_REPO ssh://[email protected]

# Build image
RUN git clone -b dev ${GIT_REPO}  && cd amc-apiserver && \
        ./gradlew build -x test && mv build/libs/xxx.jar /app.jar && \
        cd / && rm -rf app && rm -rf /root/.gradle

# Cleanup useless libs and files
RUN rm -rf /root/.ssh && apk del git
CMD java -jar /app.jar
 

2)同样通过docker build -t imagename:version .命令来创建镜像

3)创建完之后可以通过docker ps a来查看所有的容器,docker images查看所有的镜像,如果存在刚才新建的两个镜像名称则说明镜像创建成功

3.进入容器并启动容器

可以通过命令 docker run -it imageId来创建并启动容器 。

注:可以结合上面的参考链接,我也是参考那篇文章的。