IsidoreSong commited on
Commit
64afcbe
·
verified ·
1 Parent(s): bf324fc

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +19 -9
Dockerfile CHANGED
@@ -1,28 +1,36 @@
 
1
  FROM node:20-alpine AS base
2
  ENV PNPM_HOME="/pnpm"
3
  ENV PATH="$PNPM_HOME:$PATH"
4
 
 
5
  RUN npm i -g pnpm
6
 
 
7
  FROM base AS clone
8
- WORKDIR /usr/src/rss
9
  RUN apk add --no-cache git
10
  RUN git clone https://github.com/cooderl/wewe-rss.git .
11
 
 
12
  FROM base AS build
13
- COPY --from=clone /usr/src/rss /usr/src/rss
14
- WORKDIR /usr/src/rss
15
 
 
16
  RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
17
  RUN pnpm run -r build
18
 
19
- RUN pnpm deploy --filter=server --prod /rss
 
20
 
21
- RUN cd /rss && pnpm exec prisma generate
 
22
 
23
- WORKDIR /rss
24
  EXPOSE 4000
25
 
 
26
  ENV NODE_ENV=production
27
  ENV HOST="0.0.0.0"
28
  ENV SERVER_ORIGIN_URL=""
@@ -33,11 +41,13 @@ ENV CRON_EXPRESSION=""
33
  RUN chmod +x ./docker-bootstrap.sh
34
  CMD ["./docker-bootstrap.sh"]
35
 
36
- FROM base AS rss
37
- COPY --from=build /rss /rss
38
- WORKDIR /rss
 
39
  EXPOSE 4000
40
 
 
41
  ENV NODE_ENV=production
42
  ENV HOST="0.0.0.0"
43
  ENV SERVER_ORIGIN_URL=""
 
1
+ # 使用Node.js的Alpine Linux版本作为基础镜像
2
  FROM node:20-alpine AS base
3
  ENV PNPM_HOME="/pnpm"
4
  ENV PATH="$PNPM_HOME:$PATH"
5
 
6
+ #全局安装pnpm
7
  RUN npm i -g pnpm
8
 
9
+ #创建一个新的构建阶段,克隆GitHub仓库
10
  FROM base AS clone
11
+ WORKDIR /usr/src/app
12
  RUN apk add --no-cache git
13
  RUN git clone https://github.com/cooderl/wewe-rss.git .
14
 
15
+ #构建应用
16
  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
23
 
24
+ #部署命令调整为使用克隆的代码
25
+ RUN pnpm deploy --filter=server --prod /app
26
 
27
+ #生成Prisma客户端
28
+ RUN cd /app && pnpm exec prisma generate
29
 
30
+ WORKDIR /app
31
  EXPOSE 4000
32
 
33
+ #环境变量设置
34
  ENV NODE_ENV=production
35
  ENV HOST="0.0.0.0"
36
  ENV SERVER_ORIGIN_URL=""
 
41
  RUN chmod +x ./docker-bootstrap.sh
42
  CMD ["./docker-bootstrap.sh"]
43
 
44
+ #定义最终使用的app阶段
45
+ FROM base AS app
46
+ COPY --from=build /app /app
47
+ WORKDIR /app
48
  EXPOSE 4000
49
 
50
+ #环境变量设置
51
  ENV NODE_ENV=production
52
  ENV HOST="0.0.0.0"
53
  ENV SERVER_ORIGIN_URL=""