RuoYi-Vue-Plus/deploy/Dockerfile.backend
2026-09-03 14:14:40 +08:00

30 lines
1.3 KiB
Docker

FROM docker.m.daocloud.io/library/maven:3.9.11-eclipse-temurin-21 AS builder
WORKDIR /build
COPY . .
RUN mvn -Pprod -DskipTests -pl ruoyi-admin -am clean package
FROM docker.m.daocloud.io/library/eclipse-temurin:21-jre-jammy
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates curl \
&& curl -fsSL --connect-timeout 10 --max-time 30 https://ghfast.top/https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh -o /tmp/install-dws.sh \
&& env DWS_GITEE_REPO=DingTalk-Real-AI/dingtalk-workspace-cli DWS_VERSION=v1.0.60 DWS_NO_SKILLS=1 DWS_INSTALL_DIR=/usr/local/bin sh /tmp/install-dws.sh \
&& dws version \
&& rm -rf /var/lib/apt/lists/* /tmp/install-dws.sh /root/.cache
WORKDIR /app
RUN mkdir -p /app/logs /app/temp /var/lib/ruoyi-sync/dws
COPY --from=builder /build/ruoyi-admin/target/ruoyi-admin.jar /app/app.jar
ENV TZ=Asia/Shanghai \
JAVA_OPTS="-XX:+UseZGC -XX:+HeapDumpOnOutOfMemoryError" \
DWS_EXECUTABLE=/usr/local/bin/dws \
DWS_PROFILE_ROOT=/var/lib/ruoyi-sync/dws
EXPOSE 8080
HEALTHCHECK --interval=15s --timeout=5s --start-period=60s --retries=10 \
CMD curl -fsS http://127.0.0.1:8080/ >/dev/null || exit 1
ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar /app/app.jar"]