From d99f77884cce54552044c5db580fe4db18bf0b34 Mon Sep 17 00:00:00 2001 From: rohansen856 Date: Wed, 18 Dec 2024 19:27:13 +0530 Subject: [PATCH] feat: added dockerfile for linux and android --- Dockerfile.android | 25 +++++++++++++++++++++++++ Dockerfile.linux | 27 +++++++++++++++++++++++++++ docker-compose.yaml | 26 ++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 Dockerfile.android create mode 100644 Dockerfile.linux create mode 100644 docker-compose.yaml diff --git a/Dockerfile.android b/Dockerfile.android new file mode 100644 index 00000000..eb49c905 --- /dev/null +++ b/Dockerfile.android @@ -0,0 +1,25 @@ +FROM ubuntu:18.04 + +RUN apt update && apt install -y curl git unzip xz-utils zip libglu1-mesa openjdk-8-jdk wget + +RUN useradd -ms /bin/bash developer +USER developer +WORKDIR /home/developer + +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" + +RUN git clone https://github.com/flutter/flutter.git +ENV PATH "$PATH:/home/developer/flutter/bin" +RUN flutter doctor diff --git a/Dockerfile.linux b/Dockerfile.linux new file mode 100644 index 00000000..a8e1bd61 --- /dev/null +++ b/Dockerfile.linux @@ -0,0 +1,27 @@ +FROM ghcr.io/cirruslabs/flutter:3.24.5 + +WORKDIR /app + +COPY . /app + +# Install dependencies for Flutter Linux desktop development +RUN apt-get update && apt-get install -y \ + libgtk-3-dev \ + libblkid-dev \ + liblzma-dev \ + liblzma5 \ + libnss3 \ + libx11-dev \ + libxkbfile-dev \ + libcurl4-openssl-dev \ + xdg-utils \ + cmake \ + ninja-build \ + clang \ + && apt-get clean + +RUN flutter doctor + +RUN flutter config --enable-linux-desktop +RUN flutter clean +RUN flutter pub get \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..8525d100 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,26 @@ +version: "3.9" +services: + flutter_linux: + profiles: + - linux + build: + context: . + dockerfile: Dockerfile.linux + environment: + - DISPLAY=${DISPLAY} + volumes: + - .:/app + network_mode: "host" # Use host networking + command: ["bash", "-c", "flutter clean && flutter run -d linux"] + flutter_android: + profiles: + - android + build: + context: . + dockerfile: Dockerfile.android + environment: + - DISPLAY=${DISPLAY} + volumes: + - .:/app + network_mode: "host" # Use host networking + command: ["bash", "-c", "flutter run -d android"] \ No newline at end of file