Openstatus
www.openstatus.dev
1# syntax=docker/dockerfile:1.11
2# This file is generated by Dofigen v2.5.1
3# See https://github.com/lenra-io/dofigen
4
5# builder
6FROM node@sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 AS builder
7LABEL \
8 org.opencontainers.image.base.digest="sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2" \
9 org.opencontainers.image.base.name="docker.io/node:24-slim"
10ENV \
11 PROJECT_ID_VERCEL="test" \
12 CRON_SECRET="test" \
13 DATABASE_URL="http://libsql:8080" \
14 DATABASE_AUTH_TOKEN="test" \
15 UPSTASH_REDIS_REST_TOKEN="test" \
16 UPSTASH_REDIS_REST_URL="test" \
17 AUTH_SECRET="build-time-placeholder-min-32-chars-long" \
18 OPENPANEL_CLIENT_SECRET="test" \
19 VERCEL_AUTH_BEARER_TOKEN="test" \
20 TEAM_ID_VERCEL="test" \
21 TINY_BIRD_API_KEY="test" \
22 UNKEY_TOKEN="test" \
23 NEXT_PUBLIC_URL="http://localhost:3002" \
24 STRIPE_SECRET_KEY="test" \
25 UNKEY_API_ID="test" \
26 NEXT_PUBLIC_OPENPANEL_CLIENT_ID="test" \
27 PATH="$PNPM_HOME:$PATH" \
28 NODE_ENV="production" \
29 SELF_HOST="true" \
30 PNPM_HOME="/pnpm" \
31 RESEND_API_KEY="test"
32WORKDIR /app
33COPY \
34 --link \
35 "." "/app/"
36RUN <<EOF
37corepack enable
38pnpm install --frozen-lockfile
39pnpm turbo run build --filter=@openstatus/dashboard
40EOF
41
42# runtime
43FROM node@sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2 AS runtime
44LABEL \
45 io.dofigen.version="2.5.1" \
46 org.opencontainers.image.base.digest="sha256:0afb7822fac7bf9d7c1bf3b6e6c496dee6b2b64d8dfa365501a3c68e8eba94b2" \
47 org.opencontainers.image.base.name="docker.io/node:24-slim"
48WORKDIR /app/apps/dashboard
49COPY \
50 --from=builder \
51 --chown=1000:1000 \
52 --chmod=555 \
53 --link \
54 "/app/apps/dashboard/.next/standalone/apps/dashboard/" "./"
55COPY \
56 --from=builder \
57 --chown=1000:1000 \
58 --link \
59 "/app/node_modules/" "/app/node_modules/"
60COPY \
61 --from=builder \
62 --chown=1000:1000 \
63 --link \
64 "/app/apps/dashboard/.next/static/" "./.next/static/"
65COPY \
66 --from=builder \
67 --chown=1000:1000 \
68 --link \
69 "/app/apps/dashboard/public/" "./public/"
70USER 0:0
71RUN <<EOF
72apt-get update
73apt-get install -y --no-install-recommends curl
74rm -rf /var/lib/apt/lists/*
75EOF
76USER 1000:1000
77EXPOSE 3000
78HEALTHCHECK \
79 --interval=30s \
80 --timeout=10s \
81 --start-period=45s \
82 --retries=3 \
83 CMD curl -f http://localhost:3000/ || exit 1
84CMD ["node", "server.js"]