Update Dockerfile
Browse files- 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
|