forked from baron/baron-sso
28 lines
850 B
Docker
28 lines
850 B
Docker
# Stage 1: Build Flutter
|
|
FROM ghcr.io/cirruslabs/flutter:3.38.0 AS build
|
|
ENV RUN_FLUTTER_AS_ROOT=true
|
|
WORKDIR /app
|
|
COPY . .
|
|
# Get dependencies and build for web
|
|
RUN /bin/sh ./scripts/sync_userfront_locales.sh
|
|
WORKDIR /app/userfront
|
|
RUN flutter pub get
|
|
RUN flutter build web --release --wasm
|
|
|
|
FROM node:24-alpine AS optimize
|
|
WORKDIR /work
|
|
COPY --from=build /app/userfront/build/web /work/build/web
|
|
COPY userfront/scripts/optimize-web-build.mjs /work/scripts/optimize-web-build.mjs
|
|
RUN node /work/scripts/optimize-web-build.mjs /work/build/web
|
|
|
|
# Stage 2: Serve with Nginx
|
|
FROM alpine:3.23
|
|
RUN apk add --no-cache nginx nginx-mod-http-brotli
|
|
# Copy built assets
|
|
COPY --from=optimize /work/build/web /usr/share/nginx/html
|
|
# Copy custom Nginx config
|
|
COPY userfront/nginx.conf /etc/nginx/http.d/default.conf
|
|
|
|
EXPOSE 5000
|
|
CMD ["nginx", "-g", "daemon off;"]
|