Files
FunConnect/Dockerfile.server

47 lines
902 B
Docker

# 构建阶段 - 服务端
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"]