1
0
forked from baron/baron-sso
Files
baron-sso/userfront/Dockerfile

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;"]