Update Dockerfile
Browse files- Dockerfile +20 -2
Dockerfile
CHANGED
@@ -3,8 +3,13 @@ FROM node:20-alpine AS base
|
|
3 |
ENV PNPM_HOME="/pnpm"
|
4 |
ENV PATH="$PNPM_HOME:$PATH"
|
5 |
|
6 |
-
#
|
7 |
-
RUN
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
# 创建一个新的构建阶段,克隆GitHub仓库
|
10 |
FROM base AS clone
|
@@ -17,6 +22,15 @@ FROM base AS build
|
|
17 |
COPY --from=clone /usr/src/app /usr/src/app
|
18 |
WORKDIR /usr/src/app
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
# 使用pnpm安装依赖,构建应用
|
21 |
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
22 |
RUN pnpm run -r build
|
@@ -29,6 +43,10 @@ RUN pnpm deploy --filter=server --prod /app-sqlite
|
|
29 |
RUN cd /app && pnpm exec prisma generate
|
30 |
RUN cd /app-sqlite && rm -rf ./prisma && mv prisma-sqlite prisma && pnpm exec prisma generate
|
31 |
|
|
|
|
|
|
|
|
|
32 |
|
33 |
WORKDIR /app
|
34 |
EXPOSE 4000
|
|
|
3 |
ENV PNPM_HOME="/pnpm"
|
4 |
ENV PATH="$PNPM_HOME:$PATH"
|
5 |
|
6 |
+
# 安装 OpenSSL
|
7 |
+
RUN apt-get update && apt-get install -y \
|
8 |
+
openssl=1.1.* \
|
9 |
+
&& rm -rf /var/lib/apt/lists/*
|
10 |
+
|
11 |
+
# 安装最新版本的 npm
|
12 |
+
RUN npm install -g npm@latest
|
13 |
|
14 |
# 创建一个新的构建阶段,克隆GitHub仓库
|
15 |
FROM base AS clone
|
|
|
22 |
COPY --from=clone /usr/src/app /usr/src/app
|
23 |
WORKDIR /usr/src/app
|
24 |
|
25 |
+
# 修改文件权限
|
26 |
+
RUN chown -R node:node /app/node_modules
|
27 |
+
|
28 |
+
# 确保以 node 用户身份运行容器
|
29 |
+
USER node
|
30 |
+
|
31 |
+
# 设置正确的权限
|
32 |
+
RUN chmod -R 777 /app/node_modules /app/.pnpm
|
33 |
+
|
34 |
# 使用pnpm安装依赖,构建应用
|
35 |
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
36 |
RUN pnpm run -r build
|
|
|
43 |
RUN cd /app && pnpm exec prisma generate
|
44 |
RUN cd /app-sqlite && rm -rf ./prisma && mv prisma-sqlite prisma && pnpm exec prisma generate
|
45 |
|
46 |
+
# 手动安装 Prisma
|
47 |
+
RUN npm install prisma
|
48 |
+
RUN npx prisma generate
|
49 |
+
|
50 |
|
51 |
WORKDIR /app
|
52 |
EXPOSE 4000
|