fxlinux commited on
Commit
5feccdc
·
verified ·
1 Parent(s): e8cc2e9

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +7 -2
Dockerfile CHANGED
@@ -5,15 +5,19 @@ WORKDIR /app
5
  # 设置环境变量,阻止 Deno 更新检查和交互式提示
6
  ENV DENO_NO_UPDATE_CHECK=1
7
  ENV DENO_NO_PROMPT=1
 
 
 
 
 
 
8
 
9
  # 在复制文件之前就进行清理,确保一个非常干净的环境
10
- # 2>/dev/null || true 确保即使目录不存在也不会报错中断
11
  RUN rm -rf /app/node_modules /app/node_modules/.deno /deno-dir 2>/dev/null || true
12
 
13
  COPY . .
14
 
15
  # 关键步骤:更改 /app 目录及其内容的权限,使其属于 'deno' 用户和组
16
- # Deno 镜像通常会有一个名为 'deno' 的用户和组
17
  RUN chown -R deno:deno /app
18
 
19
  # 再次清理,以防万一(虽然通常前面的清理已足够,这里可省略,但保留也无妨)
@@ -23,6 +27,7 @@ RUN rm -rf node_modules /app/node_modules/.deno 2>/dev/null || true
23
  USER deno
24
 
25
  # 缓存依赖项
 
26
  RUN deno cache --reload --quiet --node-modules-dir main.ts
27
 
28
  EXPOSE 8000
 
5
  # 设置环境变量,阻止 Deno 更新检查和交互式提示
6
  ENV DENO_NO_UPDATE_CHECK=1
7
  ENV DENO_NO_PROMPT=1
8
+ # 明确设置 Deno 的根目录,可能有助于控制缓存位置
9
+ # 如果不设置,默认为 /deno-dir
10
+ # ENV DENO_DIR=/deno-dir # 这行通常不需要,因为 Deno 知道这个默认路径
11
+
12
+ # 提前创建并确保 /deno-dir 目录存在,并赋予 deno 用户权限
13
+ RUN mkdir -p /deno-dir && chown -R deno:deno /deno-dir
14
 
15
  # 在复制文件之前就进行清理,确保一个非常干净的环境
 
16
  RUN rm -rf /app/node_modules /app/node_modules/.deno /deno-dir 2>/dev/null || true
17
 
18
  COPY . .
19
 
20
  # 关键步骤:更改 /app 目录及其内容的权限,使其属于 'deno' 用户和组
 
21
  RUN chown -R deno:deno /app
22
 
23
  # 再次清理,以防万一(虽然通常前面的清理已足够,这里可省略,但保留也无妨)
 
27
  USER deno
28
 
29
  # 缓存依赖项
30
+ # 确保所有 Deno 相关的缓存和操作都在 /app 目录下进行
31
  RUN deno cache --reload --quiet --node-modules-dir main.ts
32
 
33
  EXPOSE 8000