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