All checks were successful
Check for Flutter SDK Updates / check-update (push) Successful in 2s
Creates a dedicated flutter user and switches to it as the default. Resolves Docker Scout compliance check for non-root default user. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
62 lines
1.6 KiB
Docker
62 lines
1.6 KiB
Docker
FROM debian:bookworm-slim
|
|
|
|
ARG FLUTTER_VERSION=3.38.9
|
|
|
|
LABEL org.opencontainers.image.title="flutter-sdk"
|
|
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
|
|
|
|
# Create non-root user for CI builds
|
|
RUN groupadd -r flutter && useradd -r -g flutter -m -d /home/flutter flutter && \
|
|
chown -R flutter:flutter "${FLUTTER_HOME}" /home/flutter
|
|
|
|
WORKDIR /app
|
|
RUN chown flutter:flutter /app
|
|
USER flutter
|