forked from mj/devopsscripts
54 lines
2.0 KiB
Docker
54 lines
2.0 KiB
Docker
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..." && \
|
|
mvn deploy -pl "$API_MODULE" -am -DskipTests; \
|
|
fi && \
|
|
if [ -n "$SVC_MODULE" ]; then \
|
|
echo "Found SVC module: $SVC_MODULE, copying from $SVC_MODULE target..." && \
|
|
cp "$SVC_MODULE/target/"*.jar . ; \
|
|
else \
|
|
echo "No SVC module found, copying from root target..." && \
|
|
cp target/*.jar . ; \
|
|
fi
|
|
|
|
|
|
FROM 172.31.127.251:8083/library/java21:1.0.0
|
|
ARG PROJECTCODE
|
|
ARG PROJECTVERSION
|
|
LABEL author=wangchuan<wangzefu520@163.com>
|
|
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="" \
|
|
APP_OPS="" \
|
|
SKYWALKING_OPS="" \
|
|
GC_OPS="-Xms512m -Xmx512m \
|
|
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m \
|
|
-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"
|
|
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"]
|