Skip to content

Commit 8a83728

Browse files
committed
fix
1 parent dbcf20b commit 8a83728

File tree

1 file changed

+36
-46
lines changed

1 file changed

+36
-46
lines changed

.devcontainer/Dockerfile

Lines changed: 36 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,58 @@
1-
# Acode Development Container (Manual Docker Build)
2-
3-
FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04
4-
5-
ARG ANDROID_SDK_VERSION=35
6-
ARG ANDROID_BUILD_TOOLS_VERSION=35.0.0
7-
ARG NODE_MAJOR=22
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
815

916
ENV ANDROID_HOME=/opt/android-sdk
1017
ENV ANDROID_SDK_ROOT=/opt/android-sdk
11-
ENV PATH="${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/build-tools/${ANDROID_BUILD_TOOLS_VERSION}"
18+
ENV GRADLE_HOME=/opt/gradle
19+
ENV PATH="${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${GRADLE_HOME}/bin"
1220

13-
# Install essential packages
1421
RUN apt-get update && apt-get install -y --no-install-recommends \
15-
curl \
1622
wget \
1723
unzip \
18-
git \
19-
ca-certificates \
20-
gnupg \
2124
&& rm -rf /var/lib/apt/lists/*
2225

23-
# Install Java 21 (Temurin JDK)
24-
RUN curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /usr/share/keyrings/adoptium.gpg \
25-
&& echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb $(lsb_release -cs) main" > /etc/apt/sources.list.d/adoptium.list \
26-
&& apt-get update \
27-
&& apt-get install -y --no-install-recommends temurin-21-jdk \
28-
&& rm -rf /var/lib/apt/lists/*
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}
2931

30-
# Set JAVA_HOME dynamically based on installed JDK
31-
RUN JAVA_DIR=$(dirname $(dirname $(readlink -f $(which java)))) \
32-
&& echo "export JAVA_HOME=$JAVA_DIR" >> /etc/profile.d/java.sh \
33-
&& echo "export JAVA_HOME=$JAVA_DIR" >> ~/.bashrc
34-
ENV JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-arm64
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
3540

36-
# Install Node.js via NodeSource
37-
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash - \
38-
&& apt-get install -y nodejs \
39-
&& rm -rf /var/lib/apt/lists/*
41+
ENV PATH="${FNM_DIR}/aliases/default/bin:${PATH}"
4042

41-
# Install pnpm
42-
RUN npm install -g pnpm
43-
44-
# Install Android SDK command-line tools
43+
# Install Android SDK
4544
RUN mkdir -p ${ANDROID_HOME}/cmdline-tools \
4645
&& cd ${ANDROID_HOME}/cmdline-tools \
47-
&& wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip \
46+
&& wget -q "https://dl.google.com/android/repository/commandlinetools-linux-${CMDLINE_TOOLS_VERSION}_latest.zip" -O cmdline-tools.zip \
4847
&& unzip -q cmdline-tools.zip \
4948
&& rm cmdline-tools.zip \
50-
&& mv cmdline-tools latest
51-
52-
# Accept Android SDK licenses and install required components
53-
RUN yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --licenses 2>/dev/null || true \
49+
&& mv cmdline-tools latest \
50+
&& yes | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --licenses 2>/dev/null || true \
5451
&& ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager --update \
5552
&& ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager \
5653
"platform-tools" \
57-
"platforms;android-${ANDROID_SDK_VERSION}" \
58-
"build-tools;${ANDROID_BUILD_TOOLS_VERSION}"
59-
60-
# Install Gradle
61-
ARG GRADLE_VERSION=8.11
62-
RUN wget -q https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip -O /tmp/gradle.zip \
63-
&& unzip -q /tmp/gradle.zip -d /opt \
64-
&& rm /tmp/gradle.zip \
65-
&& ln -s /opt/gradle-${GRADLE_VERSION}/bin/gradle /usr/local/bin/gradle
54+
"platforms;android-${ANDROID_PLATFORM}" \
55+
"build-tools;${ANDROID_BUILD_TOOLS}"
6656

6757
WORKDIR /workspaces/acode
6858

0 commit comments

Comments
 (0)