Spaces:
Running
Running
# 第 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"] |