mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-22 07:00:43 +08:00
build: build docker image with one Dockerfile (#44)
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
FROM buildpack-deps:bullseye-scm AS source
|
||||
|
||||
ARG VERSION="1.0.0"
|
||||
ENV VERSION=${VERSION}
|
||||
|
||||
WORKDIR /usr/src
|
||||
|
||||
RUN git clone --depth 1 https://github.com/ReaJason/MemShellParty.git . && \
|
||||
rm -rf vul integration-test tools
|
||||
|
||||
FROM oven/bun:1.2.2 AS frontend
|
||||
|
||||
ARG ROUTE_ROOT_PATH="/"
|
||||
ARG CONTEXT_PATH=""
|
||||
|
||||
WORKDIR /usr/src/web
|
||||
|
||||
ENV VITE_APP_API_URL=${CONTEXT_PATH} \
|
||||
VITE_APP_BASE_PATH=${ROUTE_ROOT_PATH}
|
||||
|
||||
COPY --from=source /usr/src/web/package.json /usr/src/web/bun.lockb /usr/src/web/
|
||||
|
||||
RUN bun install --frozen-lockfile
|
||||
|
||||
COPY --from=source /usr/src/web /usr/src/web
|
||||
|
||||
RUN bun run build
|
||||
|
||||
FROM eclipse-temurin:17.0.14_7-jdk-noble AS backend
|
||||
|
||||
ARG VERSION="1.0.0"
|
||||
ENV VERSION=${VERSION}
|
||||
|
||||
WORKDIR /usr/src
|
||||
|
||||
COPY --from=source /usr/src /usr/src
|
||||
|
||||
COPY --from=frontend /usr/src/web/dist /usr/src/web/dist
|
||||
|
||||
RUN set -ex && \
|
||||
cd web && bash copy-build.sh && \
|
||||
cd .. && ./gradlew -Pversion=${VERSION} :boot:bootjar -x test --no-daemon
|
||||
|
||||
FROM eclipse-temurin:17.0.14_7-jre-noble
|
||||
|
||||
LABEL authors="ReaJason<[email protected]>"
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=backend /usr/src/boot/build/libs/*.jar app.jar
|
||||
|
||||
RUN groupadd -r spring && \
|
||||
useradd -r -g spring spring && \
|
||||
chown spring:spring /app/app.jar
|
||||
|
||||
USER spring:spring
|
||||
|
||||
ENV INTERNAL_JAVA_OPTS="\
|
||||
-Djava.security.egd=file:/dev/./urandom -Dfastison.parser.safeMode=true \
|
||||
--add-opens=java.base/java.util=ALL-UNNAMED \
|
||||
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \
|
||||
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED"
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS $INTERNAL_JAVA_OPTS -jar app.jar $BOOT_OPTS"]
|
||||
+14
-10
@@ -1,19 +1,23 @@
|
||||
FROM eclipse-temurin:17-jre
|
||||
|
||||
ARG VERSION=1.0.0
|
||||
|
||||
ENV VERSION=$VERSION
|
||||
FROM eclipse-temurin:17.0.14_7-jre-noble
|
||||
|
||||
LABEL authors="ReaJason<[email protected]>"
|
||||
|
||||
WORKDIR /app
|
||||
COPY build/libs/boot-${VERSION}.jar app.jar
|
||||
|
||||
COPY build/libs/*.jar app.jar
|
||||
|
||||
RUN groupadd -r spring && \
|
||||
useradd -r -g spring spring && \
|
||||
chown spring:spring /app/app.jar
|
||||
|
||||
USER spring:spring
|
||||
|
||||
ENV INTERNAL_JAVA_OPTS="\
|
||||
--add-opens=java.base/java.util=ALL-UNNAMED \
|
||||
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \
|
||||
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED"
|
||||
-Djava.security.egd=file:/dev/./urandom -Dfastison.parser.safeMode=true \
|
||||
--add-opens=java.base/java.util=ALL-UNNAMED \
|
||||
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \
|
||||
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED"
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
ENTRYPOINT java $JAVA_OPTS $INTERNAL_JAVA_OPTS -jar app.jar $BOOT_OPTS
|
||||
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS $INTERNAL_JAVA_OPTS -jar app.jar $BOOT_OPTS"]
|
||||
Reference in New Issue
Block a user