|
| 1 | +# Acode Development Container - Standalone Docker Build |
| 2 | +# |
| 3 | +# This Dockerfile is for MANUAL Docker builds (docker build/run). |
| 4 | +# Usage: |
| 5 | +# docker build -t acode-dev .devcontainer/ |
| 6 | +# docker run -it -v $(pwd):/workspaces/acode acode-dev |
| 7 | + |
| 8 | +FROM mcr.microsoft.com/devcontainers/java:1-21-bullseye |
| 9 | + |
| 10 | +ARG ANDROID_PLATFORM=35 |
| 11 | +ARG ANDROID_BUILD_TOOLS=35.0.0 |
| 12 | +ARG CMDLINE_TOOLS_VERSION=11076708 |
| 13 | +ARG NODE_VERSION=22 |
| 14 | +ARG GRADLE_VERSION=8.11 |
| 15 | + |
| 16 | +ENV ANDROID_HOME=/opt/android-sdk |
| 17 | +ENV ANDROID_SDK_ROOT=/opt/android-sdk |
| 18 | +ENV GRADLE_HOME=/opt/gradle |
| 19 | +ENV PATH="${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${GRADLE_HOME}/bin" |
| 20 | + |
| 21 | +RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 22 | + wget \ |
| 23 | + unzip \ |
| 24 | + && rm -rf /var/lib/apt/lists/* |
| 25 | + |
| 26 | +# Install Gradle |
| 27 | +RUN wget -q "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" -O /tmp/gradle.zip \ |
| 28 | + && unzip -q /tmp/gradle.zip -d /opt \ |
| 29 | + && rm /tmp/gradle.zip \ |
| 30 | + && ln -s /opt/gradle-${GRADLE_VERSION} ${GRADLE_HOME} |
| 31 | + |
| 32 | +# Install fnm and Node.js |
| 33 | +ENV FNM_DIR=/usr/local/fnm |
| 34 | +ENV PATH="${FNM_DIR}:${PATH}" |
| 35 | +RUN curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir "${FNM_DIR}" --skip-shell \ |
| 36 | + && eval "$(${FNM_DIR}/fnm env)" \ |
| 37 | + && fnm install ${NODE_VERSION} \ |
| 38 | + && fnm default ${NODE_VERSION} \ |
| 39 | + && npm install -g pnpm |
| 40 | + |
| 41 | +ENV PATH="${FNM_DIR}/aliases/default/bin:${PATH}" |
| 42 | + |
| 43 | +# Install Android SDK |
| 44 | +RUN mkdir -p ${ANDROID_HOME}/cmdline-tools \ |
| 45 | + && cd ${ANDROID_HOME}/cmdline-tools \ |
| 46 | + && wget -q "https://dl.google.com/android/repository/commandlinetools-linux-${CMDLINE_TOOLS_VERSION}_latest.zip" -O cmdline-tools.zip \ |
| 47 | + && unzip -q cmdline-tools.zip \ |
| 48 | + && rm cmdline-tools.zip \ |
| 49 | + && mv cmdline-tools latest \ |
| 50 | + && yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --licenses 2>/dev/null || true \ |
| 51 | + && ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --update \ |
| 52 | + && ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager \ |
| 53 | + "platform-tools" \ |
| 54 | + "platforms;android-${ANDROID_PLATFORM}" \ |
| 55 | + "build-tools;${ANDROID_BUILD_TOOLS}" |
| 56 | + |
| 57 | +WORKDIR /workspaces/acode |
| 58 | + |
| 59 | +LABEL maintainer="Acode Foundation" |
| 60 | +LABEL description="Development environment for building Acode - Code Editor for Android" |
0 commit comments