blob: d7811ed16395c2a58b06ce0d11bc573dbc1e8726 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
FROM node:26-slim AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
RUN npm prune --omit=dev
FROM node:26-slim
WORKDIR /app
COPY --from=builder /app/build build/
COPY --from=builder /app/node_modules node_modules/
COPY --from=builder /app/package.json ./
COPY --from=builder /app/drizzle drizzle/
COPY --from=builder /app/scripts/migrate.js scripts/migrate.js
RUN mkdir -p /app/data && chown -R node:node /app
VOLUME /app/data
EXPOSE 3000
ENV NODE_ENV=production
ENV DATABASE_URL=file:./data/data.db
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD node -e "require('http').get('http://localhost:3000/', r => {process.exit(r.statusCode === 200 ? 0 : 1)})"
USER node
CMD ["sh", "-c", "node scripts/migrate.js && node build"]
|