facebook-react-native
SUCCESS
19m 11s
History Source
SummaryIterations2Transcript28Dockerfile
Dockerfile40 lines · 1441 chars
FROM gradle:8-jdk17

ENV DEBIAN_FRONTEND=noninteractive

# Install essential build-time dependencies and Node.js environment
RUN apt-get update -qq && \
    apt-get install -y -qq curl git unzip zip ca-certificates wget && \
    rm -rf /var/lib/apt/lists/*

# Install Node.js (pin to v18.x for compatibility) and Yarn
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
    apt-get update -qq && \
    apt-get install -y -qq nodejs && \
    npm install -g yarn

# Install Android SDK Command-line Tools (non-interactive, licenses accepted via sdkmanager)
RUN mkdir -p /opt/android-sdk && \
    cd /opt/android-sdk && \
    wget -q https://dl.google.com/android/repository/commandlinetools-linux-9477226_latest.zip -O cmdline-tools.zip && \
    unzip -q cmdline-tools.zip -d cmdline-tools && \
    rm cmdline-tools.zip && \
    yes | ./cmdline-tools/bin/sdkmanager --sdk_root=/opt/android-sdk "platform-tools" "platforms;android-33" "build-tools;33.0.2"

# Android SDK environment variables
ENV ANDROID_HOME=/opt/android-sdk
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV PATH=$PATH:/opt/android-sdk/cmdline-tools/bin:/opt/android-sdk/platform-tools

WORKDIR /workspace

# Copy source and build
COPY . /workspace

# Install Java/JS dependencies and build the Android component
RUN yarn install && \
    ./gradlew :packages:react-native:ReactAndroid:build

# Default to an interactive shell for container usability
CMD ["/bin/bash"]