gcssloop-rclayout
SUCCESS
27m 44s
History Source
SummaryIterations2Transcript29Dockerfile
Dockerfile45 lines · 1584 chars
FROM gradle:jdk8-jammy

# Install Android SDK dependencies
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
    && apt-get install -y --no-install-recommends curl unzip ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# Android SDK root and PATH
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV PATH="$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools"

RUN mkdir -p "$ANDROID_SDK_ROOT" \
    && mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" \
    && mkdir -p "$ANDROID_SDK_ROOT/platform-tools" \
    && mkdir -p "$ANDROID_SDK_ROOT/build-tools" \
    && mkdir -p "$ANDROID_SDK_ROOT/licenses" \
    \
    && curl -o /tmp/commandlinetools.zip -L https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip \
    && unzip -q /tmp/commandlinetools.zip -d "$ANDROID_SDK_ROOT/cmdline-tools" \
    && rm -f /tmp/commandlinetools.zip \
    && mv "$ANDROID_SDK_ROOT/cmdline-tools" "$ANDROID_SDK_ROOT/cmdline-tools/latest" 2>/dev/null || true

# Accept licenses and install essential packages (run as root)
RUN yes | sdkmanager --licenses 2>/dev/null || true
RUN yes | sdkmanager "platform-tools" "platforms;android-28" "build-tools;28.0.3" 2>/dev/null || true

# Build workspace
WORKDIR /workspace
COPY . /workspace

# Make gradlew executable
RUN chmod +x /workspace/gradlew

# Create a non-root user to perform the build
RUN useradd -m builder
RUN chown -R builder:builder /workspace /opt/android-sdk
USER builder

# Build the project from source
RUN ./gradlew clean build

# Default to an interactive shell for inspection
CMD ["bash"]