How can I optimise the size of docker container for flutter

115 Views Asked by At

I am trying to build a docker image which will be used for a CI/CD pipeline. I am trying to reduce the size of the image. Here is my dockerFile, what can be done to optimise it?

FROM  ubuntu:20.04


ENV FLUTTER_CHANNEL="stable"
ENV FLUTTER_VERSION="2.2.1"
ENV JAVA_VERSION="8"
ENV FLUTTER_URL="https://storage.googleapis.com/flutter_infra/releases/$FLUTTER_CHANNEL/linux/flutter_linux_$FLUTTER_VERSION-$FLUTTER_CHANNEL.tar.xz"
ENV FLUTTER_HOME "/home/developer/flutter/bin"

ENV DEBIAN_FRONTEND="noninteractive"
RUN apt-get update \
  && apt-get install --yes --no-install-recommends openjdk-$JAVA_VERSION-jdk curl unzip sed git bash xz-utils wget   sudo \
  && rm -rf /var/lib/{apt,dpkg,cache,log}

# Set up new user
RUN useradd -ms /bin/bash developer
USER developer
WORKDIR /home/developer

# Prepare Android directories and system variables
RUN mkdir -p Android/sdk
ENV ANDROID_SDK_ROOT /home/developer/Android/sdk
RUN mkdir -p .android && touch .android/repositories.cfg

# Set up Android SDK
RUN wget -O sdk-tools.zip https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
RUN unzip sdk-tools.zip && rm sdk-tools.zip
RUN mv tools Android/sdk/tools
RUN cd Android/sdk/tools/bin && yes | ./sdkmanager --licenses
RUN cd Android/sdk/tools/bin && ./sdkmanager "build-tools;29.0.2" "patcher;v4" "platform-tools" "platforms;android-29" "sources;android-29"
ENV PATH "$PATH:/home/developer/Android/sdk/platform-tools"

#Set up Flutter SDK
RUN curl -o flutter.tar.xz $FLUTTER_URL \
  && sudo mkdir -p $FLUTTER_HOME \
  && tar xf flutter.tar.xz -C /home/$USER \
  && rm flutter.tar.xz \
  && flutter config --no-analytics \
  && flutter precache \
  && yes "y" | flutter doctor --android-licenses \
  && flutter doctor \
  && flutter emulators --create \
  && flutter update-packages
  
ENV PATH "$PATH:/home/developer/flutter/bin"


RUN echo $(flutter doctor)

RUN yes | flutter doctor --android-licenses \
    && flutter doctor 

I would like to reduce the size currently it is 2.2GB, can some packages be removed. P.S: Just getting started with docker and piplines

0

There are 0 best solutions below