代码拉取完成,页面将自动刷新
# syntax=docker/dockerfile:experimental
## 使用 DOCKER_BUILDKIT=1 docker build -t 'imageName:tag' . 的方式進行打包
# 下載平台 apigateway(可討論是否由後端人員交付一個版本包含平台與maven的 base image)
ARG apiVersion=
ARG platformPath=/platform
ARG backendName=sampleapp1_backend
ARG packpath=/package
FROM alpine AS base
# 由此設定相關參數
ARG apiVersion
ARG platformPath
ARG backendName
ENV nexusServer=nexus.digiwincloud.com.cn:22699
WORKDIR ${platformPath}
RUN apk add wget --no-cache
RUN wget -nv 'http://'${nexusServer}'/nexus/service/local/artifact/maven/redirect?r=snapshots&g=com.digiwin&a=dwapiplatform-appbackend&e=war&v='${apiVersion} -O ${backendName}.war \
&& tar xvf ${backendName}.war \
&& mv app_backend ${backendName}
# 編譯
FROM maven:3.5.3-jdk-8 AS builder
ARG apiVersion
ARG packpath
ARG backendName
ENV build=/build modulePath=develop/module thirdParty=develop/DWThirdPartyLibrary
RUN mkdir -p ${build}/thirdParty && mkdir -p ${packpath}/lib && mkdir -p ${packpath}/module
RUN mkdir -p ${packpath}/conf && mkdir -p ${packpath}/lang && mkdir -p ${packpath}/lib
WORKDIR ${build}
# config
COPY ${backendName}/develop/conf/* ${packpath}/conf/
COPY ${backendName}/develop/lang/* ${packpath}/lang/
COPY ${backendName}/develop/lib/* ${packpath}/lib/
# thirdparty
# 目前sampleApp1沒有用到third party打包 先註解
#COPY ${backendName}/${thirdParty} ${thirdParty}
#RUN --mount=type=cache,target=/root/.m2 mvn -f ${thirdParty}/pom.xml package
#RUN cp -r ${thirdParty}/target/dependency/* ${packpath}/lib
# module1
ENV moduleName=Basic
ENV pomVersion=3.1.0.1000-SNAPSHOT
COPY ${backendName}/${modulePath}/${moduleName} ${moduleName}
RUN --mount=type=cache,target=/root/.m2 mvn -f ${moduleName}/pom.xml package
RUN cp -r ${moduleName}/target/* ${packpath}/module
# module2
ENV moduleName=dem
ENV pomVersion=3.1.0.1000-SNAPSHOT
COPY ${backendName}/${modulePath}/${moduleName} ${moduleName}
RUN --mount=type=cache,target=/root/.m2 mvn -f ${moduleName}/pom.xml package
RUN cp -r ${moduleName}/target/* ${packpath}/module
# module3
ENV moduleName=DEMO_DAP_CURRENT
ENV pomVersion=3.1.0.1000-SNAPSHOT
COPY ${backendName}/${modulePath}/${moduleName} ${moduleName}
RUN --mount=type=cache,target=/root/.m2 mvn -f ${moduleName}/pom.xml package
RUN cp -r ${moduleName}/target/* ${packpath}/module
# 打包
FROM registry.digiwincloud.com/base/digiwin_openjdk8-alpine:1.0.1.2
ARG platformPath
ARG backendName
ARG packpath
COPY --from=base ${platformPath}/${backendName} /${backendName}
WORKDIR /${backendName}
COPY --from=builder ${packpath}/ ./application/
RUN chmod +x ./platform/bin/run.sh \
&& chmod +x ./platform/bin/stop.sh \
&& chmod +x ./platform/bin/docker/dockerEnv.sh \
&& chmod +x ./platform/bin/docker/dockerEnvReplace.sh \
&& chmod +x ./platform/bin/docker/dockerRun.sh
EXPOSE 22620
ENTRYPOINT ["/sampleapp1_backend/platform/bin/docker/dockerRun.sh"]
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。