Skip to content

Commit d623477

Browse files
committed
build: build docker image with one Dockerfile (#44)
1 parent a99f1e8 commit d623477

File tree

2 files changed

+80
-10
lines changed

2 files changed

+80
-10
lines changed

Dockerfile

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
FROM buildpack-deps:bullseye-scm AS source
2+
3+
ARG VERSION="1.0.0"
4+
ENV VERSION=${VERSION}
5+
6+
WORKDIR /usr/src
7+
8+
RUN git clone --depth 1 https://github.com/ReaJason/MemShellParty.git . && \
9+
rm -rf vul integration-test tools
10+
11+
FROM oven/bun:1.2.2 AS frontend
12+
13+
ARG ROUTE_ROOT_PATH="/"
14+
ARG CONTEXT_PATH=""
15+
16+
WORKDIR /usr/src/web
17+
18+
ENV VITE_APP_API_URL=${CONTEXT_PATH} \
19+
VITE_APP_BASE_PATH=${ROUTE_ROOT_PATH}
20+
21+
COPY --from=source /usr/src/web/package.json /usr/src/web/bun.lockb /usr/src/web/
22+
23+
RUN bun install --frozen-lockfile
24+
25+
COPY --from=source /usr/src/web /usr/src/web
26+
27+
RUN bun run build
28+
29+
FROM eclipse-temurin:17.0.14_7-jdk-noble AS backend
30+
31+
ARG VERSION="1.0.0"
32+
ENV VERSION=${VERSION}
33+
34+
WORKDIR /usr/src
35+
36+
COPY --from=source /usr/src /usr/src
37+
38+
COPY --from=frontend /usr/src/web/dist /usr/src/web/dist
39+
40+
RUN set -ex && \
41+
cd web && bash copy-build.sh && \
42+
cd .. && ./gradlew -Pversion=${VERSION} :boot:bootjar -x test --no-daemon
43+
44+
FROM eclipse-temurin:17.0.14_7-jre-noble
45+
46+
LABEL authors="ReaJason<[email protected]>"
47+
48+
WORKDIR /app
49+
50+
COPY --from=backend /usr/src/boot/build/libs/*.jar app.jar
51+
52+
RUN groupadd -r spring && \
53+
useradd -r -g spring spring && \
54+
chown spring:spring /app/app.jar
55+
56+
USER spring:spring
57+
58+
ENV INTERNAL_JAVA_OPTS="\
59+
-Djava.security.egd=file:/dev/./urandom -Dfastison.parser.safeMode=true \
60+
--add-opens=java.base/java.util=ALL-UNNAMED \
61+
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \
62+
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED"
63+
64+
EXPOSE 8080
65+
66+
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS $INTERNAL_JAVA_OPTS -jar app.jar $BOOT_OPTS"]

boot/Dockerfile

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
1-
FROM eclipse-temurin:17-jre
2-
3-
ARG VERSION=1.0.0
4-
5-
ENV VERSION=$VERSION
1+
FROM eclipse-temurin:17.0.14_7-jre-noble
62

73
LABEL authors="ReaJason<[email protected]>"
84

95
WORKDIR /app
10-
COPY build/libs/boot-${VERSION}.jar app.jar
6+
7+
COPY build/libs/*.jar app.jar
8+
9+
RUN groupadd -r spring && \
10+
useradd -r -g spring spring && \
11+
chown spring:spring /app/app.jar
12+
13+
USER spring:spring
1114

1215
ENV INTERNAL_JAVA_OPTS="\
13-
--add-opens=java.base/java.util=ALL-UNNAMED \
14-
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \
15-
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED"
16+
-Djava.security.egd=file:/dev/./urandom -Dfastison.parser.safeMode=true \
17+
--add-opens=java.base/java.util=ALL-UNNAMED \
18+
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED \
19+
--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED"
1620

1721
EXPOSE 8080
1822

19-
ENTRYPOINT java $JAVA_OPTS $INTERNAL_JAVA_OPTS -jar app.jar $BOOT_OPTS
23+
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS $INTERNAL_JAVA_OPTS -jar app.jar $BOOT_OPTS"]

0 commit comments

Comments
 (0)