Files
ssh-manager/docker/Dockerfile
liumangmang 77518b3f97 Fix: 修复 Docker 上传目录解析错误
将 multipart 上传目录改为基于 DATA_DIR 的绝对路径,避免 Tomcat 在容器内把相对路径解析到临时目录。同步让上传控制器复用该配置并补充错误日志,确保本地文件在异步上传期间可用。
2026-03-18 23:46:05 +08:00

49 lines
1.3 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ========== 阶段一:前端构建(国内 npm 源) ==========
FROM node:20-alpine AS frontend
# 使用国内 npm 镜像npmmirror
COPY docker/.npmrc /root/.npmrc
WORKDIR /app
COPY frontend/package.json frontend/package-lock.json ./
RUN npm ci --prefer-offline --no-audit
COPY frontend/ ./
RUN npm run build
# ========== 阶段二:后端构建(国内 Maven 源) ==========
FROM maven:3.9-eclipse-temurin-8-alpine AS backend
COPY docker/maven-settings.xml /root/.m2/settings.xml
WORKDIR /build
# 先复制 pom利用层缓存
COPY backend/pom.xml ./
RUN mvn dependency:go-offline -B -q
# 复制后端源码
COPY backend/src ./src
# 将前端打包结果放入 Spring Boot 静态资源目录
COPY --from=frontend /app/dist ./src/main/resources/static
RUN mvn package -DskipTests -B -q
# ========== 阶段三:运行(单容器,仅 Java ==========
FROM eclipse-temurin:8-jre-alpine
RUN apk add --no-cache libgcc tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
WORKDIR /app
COPY --from=backend /build/target/*.jar app.jar
ENV DATA_DIR=/app/data
RUN mkdir -p ${DATA_DIR}/upload-temp
EXPOSE 48080
ENTRYPOINT ["java", "-jar", "app.jar"]