aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile42
-rw-r--r--docker-compose.yml17
2 files changed, 59 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..608a73a
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:22.04
+
+ENV DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y \
+ openjdk-17-jdk \
+ wget \
+ unzip \
+ git \
+ curl \
+ python3 \
+ sudo \
+ && rm -rf /var/lib/apt/lists/*
+
+ENV ANDROID_HOME=/opt/android-sdk
+ENV PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/34.0.0
+
+WORKDIR /opt
+RUN wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip \
+ && unzip -q commandlinetools-linux-11076708_latest.zip -d android-sdk \
+ && rm commandlinetools-linux-11076708_latest.zip \
+ && mkdir -p /opt/android-sdk/cmdline-tools \
+ && mv /opt/android-sdk/cmdline-tools /opt/android-sdk/cmdline-tools/latest
+
+RUN yes | /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses \
+ && /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager \
+ "platform-tools" \
+ "platforms;android-34" \
+ "build-tools;34.0.0" \
+ "ndk;26.1.10909125"
+
+RUN groupadd -g 1000 builder \
+ && useradd -u 1000 -g 1000 -m -s /bin/bash builder \
+ && echo "builder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
+
+WORKDIR /project
+RUN chmod +x /project/gradlew
+
+RUN chown -R 1000:1000 /opt/android-sdk /project
+
+USER 1000:1000
+
+CMD ["./gradlew", "build"]
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..5c4d515
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,17 @@
+services:
+ android-builder:
+ build: .
+ volumes:
+ - ./:/project
+ - gradle-cache:/home/builder/.gradle
+ - android-cache:/home/builder/.android
+ working_dir: /project
+ environment:
+ - ANDROID_HOME=/opt/android-sdk
+ - HOME=/home/builder
+ - USER=builder
+ command: ["./gradlew", "build"]
+
+volumes:
+ gradle-cache:
+ android-cache: