-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
44 lines (31 loc) · 886 Bytes
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ARG NODE_VERSION=22.14.0
FROM node:${NODE_VERSION}-slim AS build
# enable pnpm
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
WORKDIR /app
# install dependencies
COPY ./package.json /app/
COPY ./pnpm-lock.yaml /app/
RUN pnpm install --frozen-lockfile
# copy other files
COPY . ./
RUN pnpm run generate:sql
# build the app
RUN pnpm run build
# =======================
FROM node:${NODE_VERSION}-slim
WORKDIR /usr/app
# .output
COPY --from=build /app/.output/ /usr/app/.output/
COPY --from=build /app/dbschema.sql /usr/app/dbschema.sql
COPY --from=build /app/entrypoint.sh /usr/app/entrypoint.sh
EXPOSE 3000
ENV HOST=0.0.0.0 NODE_ENV=production
ENV DB_FILE_PATH=/usr/database/database.db
ENV BACKUP_FILE_PATH=/usr/database/backup.db
RUN npm install dotenv
RUN mkdir -p /usr/database/
RUN chmod +x /usr/app/entrypoint.sh
CMD [ "/usr/app/entrypoint.sh" ]