Go to file
Mathias Beaulieu-Duncan a92326374d Replace CLI examples with multi-stage Dockerfile examples
- Web: Build app and serve with nginx
- Android: Extract APK from multi-stage build
- Linux: Build desktop app with minimal runtime
- Consolidated CI/CD section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 03:53:29 -05:00
.gitea/workflows Use actual version tags in variant table, remove latest badge 2026-02-03 03:46:24 -05:00
.gitignore Initial minimal Flutter SDK image for web/WASM CI builds 2026-02-02 00:39:04 -05:00
Dockerfile Use git clone for Flutter SDK to support arm64 2026-02-03 02:06:52 -05:00
Dockerfile.android Upgrade commons-lang3 to fix CVE-2025-48924 2026-02-03 02:45:13 -05:00
Dockerfile.linux Remove rav1e to eliminate paste crate CVE in Linux image 2026-02-03 03:01:29 -05:00
PLAN.md Add plan for custom minimal Flutter SDK distribution using apko/melange 2026-02-02 01:14:31 -05:00
README.md Replace CLI examples with multi-stage Dockerfile examples 2026-02-03 03:53:29 -05:00

Flutter SDK Docker Images

Git Repository Docker Hub Docker Pulls Android SDK Wolfi

Lightweight Flutter SDK images for CI/CD pipelines. Built on Wolfi, a security-focused Linux distribution designed for containers.

Images

Variant Use Case Size Arch
web-3.38.9 Web/WASM builds size amd64   arm64
android-3.38.9 Android APK/AAB builds size amd64   arm64
linux-3.38.9 Linux desktop builds size amd64   arm64

Why Wolfi?

Wolfi is a lightweight Linux distribution built specifically for containers. It provides:

  • Minimal footprint - Only essential packages, nothing extra
  • Daily security updates - Patches applied quickly
  • Designed for containers - No legacy cruft from traditional distros

Features

  • Lightweight - Optimized for fast CI/CD pulls
  • Secure - Built on Wolfi with continuous vulnerability scanning
  • Multi-arch - Supports both linux/amd64 and linux/arm64
  • Non-root - Runs as unprivileged user (UID 65532)
  • Supply chain security - SBOM and SLSA provenance attestations included

Dockerfile Examples

Web App

FROM svrnty/flutter-sdk:web-latest AS build
COPY . /app
WORKDIR /app
RUN flutter pub get && flutter build web --release

FROM nginx:alpine
COPY --from=build /app/build/web /usr/share/nginx/html
EXPOSE 80

Android APK

FROM svrnty/flutter-sdk:android-latest AS build
COPY . /app
WORKDIR /app
RUN flutter pub get && flutter build apk --release

FROM scratch
COPY --from=build /app/build/app/outputs/flutter-apk/app-release.apk /

Linux Desktop

FROM svrnty/flutter-sdk:linux-latest AS build
COPY . /app
WORKDIR /app
RUN flutter pub get && flutter build linux --release

FROM ubuntu:22.04
RUN apt-get update && apt-get install -y libgtk-3-0 && rm -rf /var/lib/apt/lists/*
COPY --from=build /app/build/linux/x64/release/bundle /app
ENTRYPOINT ["/app/my_app"]

CI/CD

# GitHub Actions / Gitea Actions
jobs:
  build:
    runs-on: ubuntu-latest
    container:
      image: svrnty/flutter-sdk:android-latest
    steps:
      - uses: actions/checkout@v4
      - run: flutter pub get
      - run: flutter build apk --release
# GitLab CI
build:
  image: svrnty/flutter-sdk:android-latest
  script:
    - flutter pub get
    - flutter build apk --release

Tags

  • <variant>-latest - Latest stable Flutter release
  • <variant>-<version> - Specific Flutter version (e.g., android-3.38.9)
  • <variant>-dev - Pre-release testing

Automatic Updates

Images are automatically rebuilt when:

  • New Flutter stable versions are released
  • Base image security updates are available

Every build is scanned and includes supply chain attestations (SBOM, SLSA provenance).

License

MIT