Sign inSign up

lhabacuc/flutter-lite

By lhabacuc

Updated over 1 year ago

flutter

Image
0

1.1K

lhabacuc/flutter-lite repository overview

docker run -it -p 8080:8080 -v $(pwd):/home/developer/project --user root lhabacuc/flutter-lite:latest

FROM ubuntu:22.04

Evitar prompts interativos durante a instalação

ENV DEBIAN_FRONTEND=noninteractive ENV LANG=en_US.UTF-8 ENV LANGUAGE=en_US:en ENV LC_ALL=en_US.UTF-8

Configurar variáveis para Flutter e Android

ENV ANDROID_SDK_ROOT=/opt/android-sdk ENV FLUTTER_HOME=/opt/flutter ENV CHROME_EXECUTABLE=/usr/bin/google-chrome ENV PATH=$PATH:$FLUTTER_HOME/bin:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools

Instalar dependências mínimas necessárias

RUN apt-get update && apt-get install -y --no-install-recommends
curl
git
unzip
xz-utils
zip
libglu1-mesa
openjdk-17-jdk-headless
wget
apt-transport-https
gnupg
ca-certificates
locales
&& apt-get clean
&& rm -rf /var/lib/apt/lists/*

Configurar locales corretamente

RUN locale-gen en_US.UTF-8

Instalar Google Chrome

RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
&& echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list
&& apt-get update
&& apt-get install -y --no-install-recommends google-chrome-stable
&& apt-get clean
&& rm -rf /var/lib/apt/lists/*

Download e instalação do SDK do Android (apenas componentes essenciais)

RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools
&& cd ${ANDROID_SDK_ROOT}/cmdline-tools
&& curl -o cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip
&& unzip cmdline-tools.zip
&& mv cmdline-tools latest
&& rm cmdline-tools.zip
&& cd latest/bin
&& yes | ./sdkmanager --licenses
&& ./sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.2"

Criar usuário não-root

RUN useradd -ms /bin/bash developer

Download e instalação do Flutter SDK e configuração do Git

RUN git clone https://github.com/flutter/flutter.git -b stable ${FLUTTER_HOME}
&& git config --system --add safe.directory ${FLUTTER_HOME}
&& ${FLUTTER_HOME}/bin/flutter precache
&& chown -R developer:developer ${FLUTTER_HOME}

Configurar permissões do SDK do Android

RUN find ${FLUTTER_HOME} -type d -exec chmod 755 {} ; &&
find ${FLUTTER_HOME} -type f -exec chmod 644 {} ; &&
chown -R developer:developer ${FLUTTER_HOME} || true

Configurar usuário developer

USER developer WORKDIR /home/developer

Criar script de inicialização

RUN echo '#!/bin/bash\necho "Ambiente de desenvolvimento Flutter leve pronto!"\nflutter doctor\nexec "$@"' > /home/developer/startup.sh
&& chmod +x /home/developer/startup.sh

Pré-aceitar licenças do Android

RUN flutter doctor --android-licenses

Verificar que tudo está configurado corretamente

RUN flutter doctor

Expor porta para aplicações web

EXPOSE 8080

Iniciar com o script de startup

CMD ["/home/developer/startup.sh"]

Tag summary

Content type

Image

Digest

sha256:47cef26ca

Size

1.7 GB

Last updated

over 1 year ago

docker pull lhabacuc/flutter-lite