CatPtain commited on
Commit
661dd0c
·
verified ·
1 Parent(s): 37756aa

Upload Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +38 -28
Dockerfile CHANGED
@@ -1,6 +1,6 @@
1
  FROM node:18-alpine
2
 
3
- # 安装Chrome和字体依赖
4
  RUN apk add --no-cache \
5
  chromium \
6
  nss \
@@ -12,18 +12,48 @@ RUN apk add --no-cache \
12
  wqy-zenhei \
13
  bash \
14
  curl \
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  && rm -rf /var/cache/apk/*
16
 
17
- # 设置Puppeteer使用系统Chrome
18
  ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
19
  PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
20
  CHROME_BIN=/usr/bin/chromium-browser \
21
  PUPPETEER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage"
22
 
 
 
 
 
23
  # 创建非root用户
24
  RUN addgroup -g 1001 -S nodejs
25
  RUN adduser -S nodejs -u 1001
26
 
 
 
 
27
  # 设置工作目录
28
  WORKDIR /app
29
 
@@ -49,32 +79,12 @@ USER root
49
  WORKDIR /app/backend
50
  RUN npm install --omit=dev
51
 
52
- # 安装 Playwright 浏览器和依赖
53
- RUN npx playwright install chromium
54
- # 为 Alpine Linux 手动安装 Playwright 依赖
55
- RUN apk add --no-cache \
56
- libgcc \
57
- libstdc++ \
58
- libx11 \
59
- libxcomposite \
60
- libxdamage \
61
- libxext \
62
- libxfixes \
63
- libxrandr \
64
- libxtst \
65
- alsa-lib \
66
- at-spi2-core \
67
- cairo \
68
- cups-libs \
69
- dbus-libs \
70
- expat \
71
- gdk-pixbuf \
72
- glib \
73
- gtk+3.0 \
74
- libdrm \
75
- libxkbcommon \
76
- mesa-gbm \
77
- pango
78
 
79
  # 复制后端代码
80
  WORKDIR /app
 
1
  FROM node:18-alpine
2
 
3
+ # 安装系统依赖和浏览器
4
  RUN apk add --no-cache \
5
  chromium \
6
  nss \
 
12
  wqy-zenhei \
13
  bash \
14
  curl \
15
+ # Playwright 运行时依赖
16
+ libgcc \
17
+ libstdc++ \
18
+ libx11 \
19
+ libxcomposite \
20
+ libxdamage \
21
+ libxext \
22
+ libxfixes \
23
+ libxrandr \
24
+ libxtst \
25
+ alsa-lib \
26
+ at-spi2-core \
27
+ cairo \
28
+ cups-libs \
29
+ dbus-libs \
30
+ expat \
31
+ gdk-pixbuf \
32
+ glib \
33
+ gtk+3.0 \
34
+ libdrm \
35
+ libxkbcommon \
36
+ mesa-gbm \
37
+ pango \
38
  && rm -rf /var/cache/apk/*
39
 
40
+ # 设置Puppeteer环境变量
41
  ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
42
  PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
43
  CHROME_BIN=/usr/bin/chromium-browser \
44
  PUPPETEER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage"
45
 
46
+ # 设置Playwright环境变量
47
+ ENV PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright \
48
+ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=false
49
+
50
  # 创建非root用户
51
  RUN addgroup -g 1001 -S nodejs
52
  RUN adduser -S nodejs -u 1001
53
 
54
+ # 创建缓存目录并设置权限
55
+ RUN mkdir -p /home/node/.cache && chown -R nodejs:nodejs /home/node/.cache
56
+
57
  # 设置工作目录
58
  WORKDIR /app
59
 
 
79
  WORKDIR /app/backend
80
  RUN npm install --omit=dev
81
 
82
+ # 安装 Playwright 浏览器(使用 --with-deps 自动处理依赖)
83
+ RUN npx playwright install chromium --with-deps || npx playwright install chromium
84
+
85
+ # 确保浏览器文件权限正确
86
+ RUN find /home/node/.cache/ms-playwright -type f -name "*chrome*" -exec chmod +x {} \; 2>/dev/null || true
87
+ RUN chown -R nodejs:nodejs /home/node/.cache 2>/dev/null || true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
 
89
  # 复制后端代码
90
  WORKDIR /app