- Rename helix-server -> server and helix-web -> web - Remove helix-api (bruno collection and docs site) - Merge per-module .gitignore files into the root .gitignore - Add README, AGENTS, CONTRIBUTING and MIT LICENCE - Add full-stack docker-compose (postgres, redis, server, web via Caddy) with web Dockerfile, Caddyfile and Compose server config - Keep the Gradle wrapper jar tracked after the .gitignore merge - Copy gradle.properties into the server Docker build image
30 lines
735 B
Docker
30 lines
735 B
Docker
# Build the React SPA, then serve it with Caddy (static files + /api reverse proxy).
|
|
FROM node:22-alpine AS build
|
|
|
|
WORKDIR /app
|
|
|
|
ARG VITE_API_BASE_URL=/api
|
|
ARG VITE_MSAL_CLIENT_ID=
|
|
ARG VITE_MSAL_TENANT_ID=
|
|
ARG VITE_APP_TITLE=Helix
|
|
ARG VITE_DEFAULT_REGION_ABBREVIATION=GB
|
|
|
|
ENV VITE_API_BASE_URL=$VITE_API_BASE_URL \
|
|
VITE_MSAL_CLIENT_ID=$VITE_MSAL_CLIENT_ID \
|
|
VITE_MSAL_TENANT_ID=$VITE_MSAL_TENANT_ID \
|
|
VITE_APP_TITLE=$VITE_APP_TITLE \
|
|
VITE_DEFAULT_REGION_ABBREVIATION=$VITE_DEFAULT_REGION_ABBREVIATION
|
|
|
|
COPY package.json pnpm-lock.yaml ./
|
|
RUN corepack enable && pnpm install --frozen-lockfile
|
|
|
|
COPY . .
|
|
RUN pnpm build
|
|
|
|
FROM caddy:2-alpine
|
|
|
|
COPY --from=build /app/dist /srv
|
|
COPY Caddyfile /etc/caddy/Caddyfile
|
|
|
|
EXPOSE 80
|