flutter/Dockerfile
2025-02-20 14:29:14 +00:00

47 lines
1.5 KiB
Docker

FROM docker.io/debian:12-slim AS build
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
sdkmanager \
xz-utils \
&& rm -rf /var/lib/apt/lists/*
# https://docs.flutter.dev/release/archive
RUN curl https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.3-stable.tar.xz \
| tar --no-same-owner -C /opt/ -xJ
# https://developer.android.com/tools/releases/build-tools
RUN sdkmanager \
"build-tools;33.0.1" \
"build-tools;34.0.0" \
"cmdline-tools;9.0" \
"platform-tools" \
"platforms;android-33" \
"platforms;android-34" \
"platforms;android-35"
# https://gradle.org/releases/
RUN curl -Lo /gradle.zip \
'https://services.gradle.org/distributions/gradle-8.12.1-bin.zip'
FROM docker.io/debian:12-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN touch /.dockerenv
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
curl \
git \
openjdk-17-jdk-headless \
unzip \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /opt/ /opt/
ENV GRADLE_ZIP=/gradle.zip
COPY --from=build /gradle.zip "$GRADLE_ZIP"
ENV PATH="/opt/flutter/bin:$PATH"
RUN flutter config --android-sdk /opt/android-sdk/
RUN flutter precache --android
RUN yes | flutter doctor --android-licenses
COPY entrypoint.sh /usr/local/bin/
WORKDIR /app/
ENTRYPOINT ["entrypoint.sh"]
CMD ["build", "apk"]