isididiidid commited on
Commit
a6b4b50
·
verified ·
1 Parent(s): f47fb7f

Create Dockerfile

Browse files
Files changed (1) hide show
  1. 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"]