FROM debian:bookworm-slim ARG FLUTTER_VERSION=3.38.9 LABEL org.opencontainers.image.title="gpb-flutter-sdk-linux" LABEL org.opencontainers.image.description="Flutter SDK for Linux desktop CI builds" LABEL org.opencontainers.image.version="${FLUTTER_VERSION}" # Install dependencies for Flutter + Linux desktop builds RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ git \ unzip \ xz-utils \ ca-certificates \ clang \ cmake \ ninja-build \ pkg-config \ libgtk-3-dev \ liblzma-dev \ libstdc++-12-dev \ && rm -rf /var/lib/apt/lists/* ENV FLUTTER_HOME=/opt/flutter ENV PATH="${FLUTTER_HOME}/bin:${FLUTTER_HOME}/bin/cache/dart-sdk/bin:${PATH}" RUN curl -fsSL "https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz" \ -o /tmp/flutter.tar.xz && \ tar xf /tmp/flutter.tar.xz -C /opt && \ rm /tmp/flutter.tar.xz RUN git config --global --add safe.directory "${FLUTTER_HOME}" # Configure for Linux desktop only RUN flutter config --enable-linux-desktop \ --no-enable-web \ --no-enable-android \ --no-enable-ios \ --no-enable-macos-desktop \ --no-enable-windows-desktop # Precache only Linux artifacts RUN flutter precache --linux \ --no-web \ --no-android \ --no-ios \ --no-macos \ --no-windows \ --no-fuchsia \ --no-universal RUN flutter doctor -v WORKDIR /app