# 第 1 步:基础镜像 # 使用 Node.js 20 的 slim 镜像,它在大小和功能之间取得了很好的平衡。 # Playwright 要求 Node.js 18+。 FROM node:20-slim # 第 2 步:设置工作目录 # 后续所有命令都将在此目录内执行。 WORKDIR /app # 第 3 步:复制 package 文件并安装依赖 # 这一步利用了 Docker 的层缓存。只有当 package*.json 文件发生变化时,npm ci 才会重新运行。 COPY package*.json ./ RUN npm ci # 第 4 步:安装 Playwright 的系统依赖 # 这是让浏览器引擎在 Linux 上运行的关键步骤。 RUN npx playwright install-deps # 第 5 步:安装 Playwright 浏览器 # 这会下载 Playwright 所需的浏览器二进制文件。 # 注意:这将显著增加 Docker 镜像的大小。 RUN npx playwright install # 第 6 步:复制应用程序的其余代码 COPY . . # 第 7 步:为代理服务器二进制文件添加执行权限 # 你的 ProxyServer.js 会启动这个文件,所以它需要执行权限。 # 这里假设二进制文件位于 src/proxy/ 目录下。 RUN chmod +x src/proxy/chrome_proxy_server_linux_amd64 # 第 8 步:暴露应用程序端口 # 你的 lightweight-client-express.js 监听 7860 端口。 EXPOSE 7860 # 第 9 步:设置生产环境 ENV NODE_ENV=production # 第 10 步:定义运行应用的命令 # 当容器启动时,这条命令会启动你的 Express 服务器。 CMD ["node", "src/lightweight-client-express.js"]