fukeke commited on
Commit
bf370e2
1 Parent(s): 2b9a440

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +61 -0
Dockerfile ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 build
8
+ COPY . /usr/src/app
9
+ WORKDIR /usr/src/app
10
+
11
+ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
12
+
13
+ RUN pnpm run -r build
14
+
15
+ RUN pnpm deploy --filter=server --prod /app
16
+ RUN pnpm deploy --filter=server --prod /app-sqlite
17
+
18
+ RUN cd /app && pnpm exec prisma generate
19
+
20
+ RUN cd /app-sqlite && \
21
+ rm -rf ./prisma && \
22
+ mv prisma-sqlite prisma && \
23
+ pnpm exec prisma generate
24
+
25
+ FROM base AS app-sqlite
26
+ COPY --from=build /app-sqlite /app
27
+
28
+ WORKDIR /app
29
+
30
+ EXPOSE 4000
31
+
32
+ ENV NODE_ENV=production
33
+ ENV HOST="0.0.0.0"
34
+ ENV SERVER_ORIGIN_URL=""
35
+ ENV MAX_REQUEST_PER_MINUTE=60
36
+ ENV AUTH_CODE=""
37
+ ENV DATABASE_URL="file:../data/wewe-rss.db"
38
+ ENV DATABASE_TYPE="sqlite"
39
+
40
+ RUN chmod +x ./docker-bootstrap.sh
41
+
42
+ CMD ["./docker-bootstrap.sh"]
43
+
44
+
45
+ FROM base AS app
46
+ COPY --from=build /app /app
47
+
48
+ WORKDIR /app
49
+
50
+ EXPOSE 4000
51
+
52
+ ENV NODE_ENV=production
53
+ ENV HOST="0.0.0.0"
54
+ ENV SERVER_ORIGIN_URL=""
55
+ ENV MAX_REQUEST_PER_MINUTE=60
56
+ ENV AUTH_CODE=""
57
+ ENV DATABASE_URL=""
58
+
59
+ RUN chmod +x ./docker-bootstrap.sh
60
+
61
+ CMD ["./docker-bootstrap.sh"]