Files
Skit-Panel/webplayer/Dockerfile
DengDai 519589f8f5 init
2025-12-08 14:45:14 +08:00

40 lines
1.3 KiB
Docker
Raw 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.
# ---- Stage 1: Build ----
# 选择一个包含 Node.js 的官方镜像。使用 LTS (长期支持) 版本以保证稳定性。
# slim 版本体积更小,适合生产环境。
FROM node:18-slim AS builder
# 在容器内创建一个工作目录
WORKDIR /usr/src/app
# 复制 package.json 和 package-lock.json 到工作目录
# 这样可以利用 Docker 的层缓存机制,只有当这两个文件变化时才会重新安装依赖
COPY package*.json ./
# 安装项目依赖
# 使用 --only=production 参数可以避免安装 devDependencies减小最终镜像体积
RUN npm install --only=production
# 复制所有项目文件到工作目录
COPY . .
# ---- Stage 2: Production ----
# 使用一个更轻量的基础镜像来运行应用
FROM node:18-slim
# 设置容器内的工作目录
WORKDIR /usr/src/app
# 从 builder 阶段复制已经安装好的 node_modules
COPY --from=builder /usr/src/app/node_modules ./node_modules
# 复制应用程序代码
COPY --from=builder /usr/src/app .
# 暴露应用程序运行的端口
# 这个端口号应该与您 server.js 中监听的端口一致,后续会通过环境变量传入
EXPOSE 8101
# 定义容器启动时执行的命令
# 使用 ["node", "server.js"] 而不是 "node server.js",这是更推荐的 exec 格式
CMD ["node", "server.js"]