39 lines
1.5 KiB
Docker
39 lines
1.5 KiB
Docker
FROM --platform=linux/amd64 debian:bookworm-slim
|
|
|
|
ENV PATH="$PATH:/opt/flutter/bin"
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
wget curl unzip git xz-utils zip cmake clang pkg-config mesa-utils lld libgtk-3-dev ninja-build libglu1-mesa openjdk-17-jdk\
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Become non-root
|
|
ARG USERNAME=vscode
|
|
ARG USER_UID=1000
|
|
ARG USER_GID=1000
|
|
|
|
ENV FLUTTER_VERSION=3.41.8
|
|
ENV FLUTTER_HOME=/opt/flutter
|
|
RUN groupadd --gid $USER_GID $USERNAME \
|
|
&& useradd --uid $USER_UID --gid $USER_GID -m -s /bin/bash $USERNAME
|
|
|
|
|
|
# Install Flutter
|
|
RUN git clone https://github.com/flutter/flutter.git ${FLUTTER_HOME} \
|
|
&& cd ${FLUTTER_HOME} \
|
|
&& git checkout $FLUTTER_VERSION
|
|
|
|
# Set up Android SDK
|
|
ENV ANDROID_HOME=/opt/android-sdk
|
|
ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/build-tools/36.0.0
|
|
|
|
RUN mkdir -p ${ANDROID_HOME}/cmdline-tools \
|
|
&& wget https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip -O commandlinetools.zip \
|
|
&& unzip commandlinetools.zip -d ${ANDROID_HOME}/cmdline-tools \
|
|
&& mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \
|
|
&& rm commandlinetools.zip && yes | sdkmanager --licenses \
|
|
&& sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0"
|
|
RUN chown -R 1000:1000 ${ANDROID_HOME} && chown -R 1000:1000 ${FLUTTER_HOME}
|
|
|
|
USER $USERNAME
|
|
ENV HOME=/home/$USERNAME |