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