| # 使用基于 Debian 的官方 Node.js 20 slim 镜像 | |
| FROM node:20-slim | |
| RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/* | |
| # 设置工作目录 | |
| WORKDIR /app | |
| # 1. 复制 package.json 文件 | |
| # 这是为了利用 Docker 的缓存,如果依赖不变,就不用重新安装 | |
| COPY package*.json ./ | |
| # 2. 安装 package.json 中定义的所有依赖 (也就是 wrangler) | |
| RUN npm install | |
| # 3. 将你项目中的所有文件 (主要是 index.js) 复制到容器中 | |
| COPY . . | |
| # 4. 将工作目录的所有权交给 'node' 用户 (解决权限问题的关键) | |
| RUN chown -R node:node /app | |
| # 5. 切换到 'node' 用户 (安全实践) | |
| USER node | |
| # 暴露端口 | |
| EXPOSE 8080 | |
| # 容器启动命令:执行 package.json 中定义的 "start" 脚本 | |
| CMD ["npm", "start"] |