FROM 172.31.127.251:8083/library/compile:1.0.0 as builder WORKDIR /compile COPY . . RUN API_MODULE=$(ls -d *-api 2>/dev/null | head -1) && \ SVC_MODULE=$(ls -d *-svc 2>/dev/null | head -1) && \ echo "Packaging all modules..." && \ mvn clean package -DskipTests && \ if [ -n "$API_MODULE" ]; then \ echo "Found API module: $API_MODULE, deploying and packaging..."; \ fi && \ if [ -n "$SVC_MODULE" ]; then \ echo "Found SVC module: $SVC_MODULE, copying from $SVC_MODULE target..." && \ find "$SVC_MODULE/target" -maxdepth 1 -name "*.jar" ! -name "*-sources.jar" -exec cp {} . \; ; \ else \ echo "No SVC module found, copying from root target..." && \ find "target" -maxdepth 1 -name "*.jar" ! -name "*-sources.jar" -exec cp {} . \; ; \ fi FROM 172.31.127.251:8083/library/java21:1.0.0 ARG PROJECTCODE ARG PROJECTVERSION LABEL author=wangchuan COPY docker-entrypoint.sh /usr/local/bin/ COPY --from=builder /compile/*.jar $APP_HOME ENV ENV_ACTIVE="prod" \ PROJECT_NAME="${PROJECTCODE}" \ PROJECT_VERSION="${PROJECTVERSION}" \ JAVA_OPS="-Xms512m -Xmx512m \ -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m" \ APP_OPS="" \ SKYWALKING_OPS="" \ GC_OPS="-XX:+UseG1GC \ -XX:MaxGCPauseMillis=200 \ -XX:MaxDirectMemorySize=256m \ -XX:+UseContainerSupport \ -XX:+UseStringDeduplication \ -XX:+OptimizeStringConcat \ -Djava.security.egd=file:/dev/./urandom \ -Dspring.backgroundpreinitializer.ignore=true \ -Duser.timezone=GMT+08 \ -XX:+HeapDumpOnOutOfMemoryError \ -Xlog:gc*=info:file=$LOGS_HOME/gc.log:time,level,tags:filecount=30,filesize=50M \ -XX:HeapDumpPath=$LOGS_HOME/app.dump \ -DJM.LOG.PATH=/tmp/nacos/logs \ -DJM.SNAPSHOT.PATH=/tmp/nacos/naming" RUN addgroup -g 1000 1000 && \ adduser -u 1000 -G 1000 -S -D -H 1000 && \ chown 1000:1000 -R $APP_HOME $LOGS_HOME && \ chmod 744 /usr/local/bin/docker-entrypoint.sh && \ chmod 444 $APP_HOME/*.jar WORKDIR $APP_HOME ENTRYPOINT ["docker-entrypoint.sh"]