-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathDockerfile.app-lite
More file actions
101 lines (76 loc) · 3.77 KB
/
Copy pathDockerfile.app-lite
File metadata and controls
101 lines (76 loc) · 3.77 KB
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
FROM node:22 AS build
# Invalidate build cache on each deploy
ARG CACHEBUST=0
# Extract the first 8 characters of the git commit from railway as the build ID if present
ARG RAILWAY_GIT_COMMIT_SHA
ENV BUILD_ID=${RAILWAY_GIT_COMMIT_SHA%"${RAILWAY_GIT_COMMIT_SHA#??*??????}"}
ARG PUBLIC_PDS_INVITE_CODE
ENV PUBLIC_PDS_INVITE_CODE=$PUBLIC_PDS_INVITE_CODE
ARG PUBLIC_PDS
ENV PUBLIC_PDS=$PUBLIC_PDS
ARG PUBLIC_PDS_HANDLE_SUFFIX
ENV PUBLIC_PDS_HANDLE_SUFFIX=$PUBLIC_PDS_HANDLE_SUFFIX
ARG VITE_APPSERVER_DID
ENV VITE_APPSERVER_DID=$VITE_APPSERVER_DID
ARG PUBLIC_DISCORD_BRIDGE
ENV PUBLIC_DISCORD_BRIDGE=$PUBLIC_DISCORD_BRIDGE
ARG PUBLIC_BRIDGE_DID
ENV PUBLIC_BRIDGE_DID=$PUBLIC_BRIDGE_DID
# Grafana Faro browser telemetry endpoint (frontend log collection). Read via
# $env/dynamic/public and inlined at build time for adapter-static. Unset
# (default) → Faro SDK never loaded.
ARG PUBLIC_FARO_URL
ENV PUBLIC_FARO_URL=$PUBLIC_FARO_URL
# Optional Faro API key (x-api-key). Only needed when the collector sets
# FARO_API_KEY; the production default is empty (no key). Baked into the
# client bundle, so it gates casual writes, it is not a secret.
ARG PUBLIC_FARO_API_KEY
ENV PUBLIC_FARO_API_KEY=$PUBLIC_FARO_API_KEY
ARG OAUTH_HOST
ENV OAUTH_HOST=$OAUTH_HOST
ARG VITE_OAUTH_PUBLIC_CLIENT=true
ENV VITE_OAUTH_PUBLIC_CLIENT=$VITE_OAUTH_PUBLIC_CLIENT
# Public web deployment, read via $env/dynamic/public and inlined at build time
# for adapter-static. Two roles: PUBLIC_WEB_ORIGIN marks this build as a web
# deployment serving from that origin (shareable links then follow the
# document); VITE_PUBLIC_WEB_ORIGIN overrides the public origin shareable links
# fall back to (default https://roomy.space).
ARG PUBLIC_WEB_ORIGIN
ENV PUBLIC_WEB_ORIGIN=$PUBLIC_WEB_ORIGIN
ARG VITE_PUBLIC_WEB_ORIGIN
ENV VITE_PUBLIC_WEB_ORIGIN=$VITE_PUBLIC_WEB_ORIGIN
# Uncomment if building on network with a custom certificate
# COPY ./gitignore/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
# ENV NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt
WORKDIR /project
# Copy workspace manifests and patches for install
COPY pnpm-workspace.yaml pnpm-lock.yaml package.json turbo.json ./
COPY patches/ patches/
COPY packages/tsconfig/package.json packages/tsconfig/package.json
COPY packages/sdk/package.json packages/sdk/package.json
COPY packages/design/package.json packages/design/package.json
COPY packages/app-lite/package.json packages/app-lite/package.json
RUN npm i -g pnpm
RUN pnpm install --frozen-lockfile --ignore-scripts
# Rebuild esbuild native binaries (skipped by --ignore-scripts, needed by Vite)
RUN node node_modules/.pnpm/esbuild@*/node_modules/esbuild/install.js
# Copy source for all required packages
COPY packages/tsconfig/ packages/tsconfig/
COPY packages/sdk/ packages/sdk/
COPY packages/design/ packages/design/
COPY packages/app-lite/ packages/app-lite/
RUN pnpm --filter @roomy-space/sdk build
# Debug: verify PUBLIC_ env vars are present at build time
RUN echo "[app-lite build debug] PUBLIC_PDS=$PUBLIC_PDS" && \
echo "[app-lite build debug] PUBLIC_PDS_HANDLE_SUFFIX=$PUBLIC_PDS_HANDLE_SUFFIX" && \
echo "[app-lite build debug] PUBLIC_PDS_INVITE_CODE=$PUBLIC_PDS_INVITE_CODE" && \
echo "[app-lite build debug] PUBLIC_DISCORD_BRIDGE=$PUBLIC_DISCORD_BRIDGE" && \
echo "[app-lite build debug] PUBLIC_BRIDGE_DID=$PUBLIC_BRIDGE_DID" && \
echo "[app-lite build debug] VITE_APPSERVER_DID=$VITE_APPSERVER_DID" && \
echo "[app-lite build debug] PUBLIC_WEB_ORIGIN=$PUBLIC_WEB_ORIGIN" && \
echo "[app-lite build debug] VITE_PUBLIC_WEB_ORIGIN=$VITE_PUBLIC_WEB_ORIGIN" && \
echo "[app-lite build debug] PUBLIC_FARO_URL=$PUBLIC_FARO_URL"
RUN bash packages/app-lite/scripts/build-prod.sh
FROM caddy:alpine
COPY Caddyfile /etc/caddy/Caddyfile
COPY --from=build /project/packages/app-lite/build /usr/share/caddy