forked from Botanical/BotanJS
41 lines
762 B
Docker
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"]
|