# 构建阶段 - 服务端 FROM rust:1.75-bookworm AS rust-builder WORKDIR /app # 复制 Cargo 文件 COPY Cargo.toml Cargo.lock ./ COPY shared ./shared COPY server ./server COPY relay-server ./relay-server # 构建发布版本 RUN cargo build --release -p funmc-server # 构建阶段 - 管理面板前端 FROM node:20-alpine AS node-builder WORKDIR /app/admin-panel COPY admin-panel/package*.json ./ RUN npm install COPY admin-panel/ ./ RUN npm run build # 运行阶段 FROM debian:bookworm-slim RUN apt-get update && apt-get install -y \ ca-certificates \ libssl3 \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # 复制构建产物 COPY --from=rust-builder /app/target/release/funmc-server /app/funmc-server COPY --from=node-builder /app/admin-panel/dist /app/admin-panel # 创建下载目录 RUN mkdir -p /app/downloads EXPOSE 3000 EXPOSE 3001/udp CMD ["/app/funmc-server"]