springboot2.3.0layer分层构建docker

4 篇文章 0 订阅
4 篇文章 0 订阅

1、首先,插件需要2.3.0及以上

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.0.RELEASE</version>
                <configuration>
                    <layers>
                        <enabled>true</enabled>
                    </layers>
                </configuration>
            </plugin>

2.构建脚本

appname=cqliving-boot-yswlg-cms
jarname=mets-admin-1.0.0-SNAPSHOT.jar
appPath=/var/www/fx/$appname
env=test 
imgName=[镜像仓库地址]/$env/act/$appname:latest
cd $appPath;
\cp /var/www/fx/Dockerfile Dockerfile
docker build \
--build-arg appname=$appname \
--build-arg jarname=$jarname \
--build-arg env=$env \
--build-arg port=9001 \
-t $imgName .
docker images|grep none|awk '{print $3}'|xargs docker rmi
docker push $imgName

3.Dockerfile

FROM [镜像仓库地址]/prod/common/jre8-alpine:latest as builder
WORKDIR application
ARG jarname
ADD $jarname application.jar
RUN java -Djarmode=layertools -jar application.jar extract
FROM [镜像仓库地址]/prod/common/jre8-alpine:latest
WORKDIR application
ARG appname
ARG env
ARG port
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
EXPOSE $port
ENV JAVA_OPTS="\
-server \
-XX:MetaspaceSize=512m \
-XX:MaxMetaspaceSize=1024m \
-Xms1024m \
-Xmx2048m \
-Xmn256m \
-Xss256k \
-XX:SurvivorRatio=8 \
-XX:+UseConcMarkSweepGC \
-XX:+PrintGCDateStamps \
-XX:+PrintGCDetails \
-verbose:gc \
-Xloggc:/var/www/logs/$appname/gc.log \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/var/www/logs/$appname/oom.hprof \
-Dserver.port=$port \
-Dspring.profiles.active=$env"
ENTRYPOINT java ${JAVA_OPTS} org.springframework.boot.loader.JarLauncher

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值