Files
AstroJS/closure-api/Dockerfile
T
2026-06-12 04:51:38 +08:00

41 lines
762 B
Docker

FROM maven:3.9-eclipse-temurin-21 AS build
WORKDIR /src
ARG JAVA_SRC_DIR
ARG CLOSURE_NAME
# Copy pom first so Docker can cache dependencies.
COPY $JAVA_SRC_DIR/pom.xml .
RUN --mount=type=cache,target=/root/.m2 \
mvn -B -DskipTests dependency:go-offline
COPY $JAVA_SRC_DIR/src ./src
RUN --mount=type=cache,target=/root/.m2 \
mvn -B -DskipTests package
FROM eclipse-temurin:21-jre
WORKDIR /app
ARG JS_SRC_DIR
ARG JAVA_SRC_DIR
ARG CLOSURE_NAME
RUN useradd -r -u 10001 closure
COPY --from=build /src/target/${CLOSURE_NAME}-0.1.0.jar /app/runtime.jar
COPY $JS_SRC_DIR ./src
USER closure
ENV CLOSURED_ROOT=/app/src
ENV CLOSURED_PORT=8080
ENV CLOSURED_WORKERS=2
EXPOSE 8080
ENTRYPOINT ["java", "-Xms256m", "-Xmx2g", "-jar", "/app/runtime.jar"]