FROM debian:bullseye-slim AS builder # Install dependencies RUN apt-get update && apt-get install -y \ curl \ git \ unzip \ xz-utils \ && rm -rf /var/lib/apt/lists/* # Create flutter user RUN useradd -m -u 1000 flutter # Switch to flutter user USER flutter # Install Flutter RUN git clone https://github.com/flutter/flutter.git /home/flutter/flutter -b stable --depth 1 ENV PATH="/home/flutter/flutter/bin:${PATH}" # Configure Flutter RUN flutter config --no-analytics && \ flutter config --enable-web && \ flutter precache --web # Set working directory WORKDIR /home/flutter/app # Copy project files COPY --chown=flutter:flutter . . # Enable web for this project RUN flutter create . --platforms web # Get dependencies RUN flutter pub get # Build web app RUN flutter build web --release # Production stage FROM nginx:alpine # Copy built web app COPY --from=builder /home/flutter/app/build/web /usr/share/nginx/html # Copy nginx config COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]