Springboot+gradle+docker发布项目
参考链接:https://blog.****.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-****** -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来创建并启动容器 。
注:可以结合上面的参考链接,我也是参考那篇文章的。