Skip to content

FROM maven:3.9.9-eclipse-temurin-21-alpine AS mvnbuilder

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
&& apk update
&& apk add --no-cache tzdata binutils
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&& echo "Asia/Shanghai" > /etc/timezone

WORKDIR /opt

COPY . .

EXPOSE 8080

RUN mvn clean deploy '-Dmaven.test.skip=true' -U -e -B -settings settings.xml

RUN mv target/multi-api-server-1.0.0.jar /opt/app.jar

RUN jlink --module-path $JAVA_HOME/jmods --add-modules ALL-MODULE-PATH --strip-debug --no-man-pages --no-header-files --compress=zip-6 --output /minimal-jre

FROM alpine:latest ENV JAVA_HOME=/opt/jdk/jdk-25 ENV PATH="${JAVA_HOME}/bin:${PATH}" WORKDIR /opt/ COPY --from=mvnbuilder /minimal-jre $JAVA_HOME COPY --from=mvnbuilder /opt/app.jar ./

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
&& apk update
&& apk add --no-cache tzdata
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&& echo "Asia/Shanghai" > /etc/timezone

ENV JAVA_OPTS=" -server -Djava.security.egd=file:/dev/./urandom -XX:+UseContainerSupport -Duser.timezone=GMT+8 -Dfile.encoding=UTF-8 -XX:+UseG1GC"

ENV LISTEN_PORT=8080

ENV ACTIVE_PROFILE=dev

ENV CUSTOM_ENV=" -Dspring.profiles.active=${ACTIVE_PROFILE} -Dserver.port=${LISTEN_PORT} "

ENTRYPOINT ["sh","-c","java ${JAVA_OPTS} -jar ${CUSTOM_ENV} /opt/app.jar"]

更新于:

note