diff --git a/Dockerfile b/Dockerfile index 91c24de..b725155 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,21 +8,12 @@ LABEL org.opencontainers.image.version="${FLUTTER_VERSION}" USER 0 -# Download Flutter SDK and strip unnecessary files in a single layer -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 && \ - rm -rf /opt/flutter/dev \ - /opt/flutter/examples \ - /opt/flutter/bin/cache/artifacts/engine/android-* \ - /opt/flutter/bin/cache/artifacts/engine/linux-* && \ +# Clone Flutter SDK from git (supports both amd64 and arm64) +RUN git clone --depth 1 --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git /opt/flutter && \ + git config --global --add safe.directory /opt/flutter && \ + rm -rf /opt/flutter/dev /opt/flutter/examples && \ chown -R 65532:65532 /opt/flutter -# Mark git directory as safe and compact git history -RUN git config --global --add safe.directory /opt/flutter && \ - cd /opt/flutter && git gc --prune=all - USER 65532 # Configure for web-only (disable everything else) diff --git a/Dockerfile.android b/Dockerfile.android index f74c044..19268d7 100644 --- a/Dockerfile.android +++ b/Dockerfile.android @@ -30,18 +30,10 @@ RUN mkdir -p "${ANDROID_HOME}/cmdline-tools" && \ # Remove lint-psi to eliminate protobuf-java 2.6.1 CVEs (saves 86MB) rm -rf "${ANDROID_HOME}/cmdline-tools/latest/lib/external/lint-psi" -# Download Flutter SDK and strip unnecessary files -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 && \ - rm -rf /opt/flutter/dev \ - /opt/flutter/examples \ - /opt/flutter/bin/cache/artifacts/engine/linux-* \ - /opt/flutter/bin/cache/flutter_web_sdk - -RUN git config --global --add safe.directory /opt/flutter && \ - cd /opt/flutter && git gc --prune=all +# Clone Flutter SDK from git (supports both amd64 and arm64) +RUN git clone --depth 1 --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git /opt/flutter && \ + git config --global --add safe.directory /opt/flutter && \ + rm -rf /opt/flutter/dev /opt/flutter/examples # Fix ownership before switching to flutter user RUN chown -R 65532:65532 /opt/flutter "${ANDROID_HOME}" diff --git a/Dockerfile.linux b/Dockerfile.linux index bc01f65..090b8af 100644 --- a/Dockerfile.linux +++ b/Dockerfile.linux @@ -8,18 +8,10 @@ LABEL org.opencontainers.image.version="${FLUTTER_VERSION}" USER 0 -# Download Flutter SDK and strip unnecessary files -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 && \ - rm -rf /opt/flutter/dev \ - /opt/flutter/examples \ - /opt/flutter/bin/cache/artifacts/engine/android-* \ - /opt/flutter/bin/cache/flutter_web_sdk - -RUN git config --global --add safe.directory /opt/flutter && \ - cd /opt/flutter && git gc --prune=all +# Clone Flutter SDK from git (supports both amd64 and arm64) +RUN git clone --depth 1 --branch ${FLUTTER_VERSION} https://github.com/flutter/flutter.git /opt/flutter && \ + git config --global --add safe.directory /opt/flutter && \ + rm -rf /opt/flutter/dev /opt/flutter/examples # Fix ownership before switching to flutter user RUN chown -R 65532:65532 /opt/flutter