| Seamher | 9f6f4f6 | 2025-06-03 14:14:07 +0800 | [diff] [blame] | 1 | # Step 1: 构建 jar |
| 2 | FROM maven:3.9.9-eclipse-temurin-21 AS builder | ||||
| 3 | |||||
| 4 | WORKDIR /app | ||||
| 5 | COPY . . | ||||
| 6 | RUN mvn clean package -DskipTests | ||||
| 7 | |||||
| Seamher | 147b16c | 2025-06-03 16:53:49 +0800 | [diff] [blame] | 8 | FROM nginx:alpine |
| Seamher | 9f6f4f6 | 2025-06-03 14:14:07 +0800 | [diff] [blame] | 9 | |
| Seamher | 147b16c | 2025-06-03 16:53:49 +0800 | [diff] [blame] | 10 | # 创建运行目录 |
| Seamher | 9f6f4f6 | 2025-06-03 14:14:07 +0800 | [diff] [blame] | 11 | WORKDIR /app |
| Seamher | 147b16c | 2025-06-03 16:53:49 +0800 | [diff] [blame] | 12 | |
| 13 | # 拷贝 jar 到运行目录 | ||||
| Seamher | 9f6f4f6 | 2025-06-03 14:14:07 +0800 | [diff] [blame] | 14 | COPY --from=builder /app/target/*.jar app.jar |
| 15 | |||||
| Seamher | 147b16c | 2025-06-03 16:53:49 +0800 | [diff] [blame] | 16 | RUN mkdir /app/upload/ |
| 17 | |||||
| 18 | # 拷贝 Nginx 配置文件 | ||||
| 19 | COPY nginx.conf /etc/nginx/nginx.conf | ||||
| 20 | |||||
| 21 | # 安装 OpenJDK 运行环境 | ||||
| 22 | RUN apk add --no-cache openjdk21-jdk curl | ||||
| 23 | |||||
| 24 | # 后台启动 Spring Boot + 前台运行 Nginx | ||||
| 25 | EXPOSE 8082 | ||||
| Seamher | 9f6f4f6 | 2025-06-03 14:14:07 +0800 | [diff] [blame] | 26 | EXPOSE 8080 |
| Seamher | 147b16c | 2025-06-03 16:53:49 +0800 | [diff] [blame] | 27 | |
| 28 | CMD java -jar app.jar & nginx -g "daemon off;" | ||||