This commit is contained in:
DengDai
2025-12-08 14:45:14 +08:00
commit 519589f8f5
60 changed files with 8191 additions and 0 deletions

39
webplayer/Dockerfile Normal file
View File

@@ -0,0 +1,39 @@
# ---- 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"]