Skip to content

Commit 0af6aa5

Browse files
authored
Cleanup the Docker Image (#199)
1 parent 5edd407 commit 0af6aa5

File tree

4 files changed

+6
-82
lines changed

4 files changed

+6
-82
lines changed

.circleci/config.yml

-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,6 @@ jobs:
3131
steps:
3232
- checkout
3333
- run: *build-docker
34-
- run:
35-
name: Check if Emulator (Headless) starts
36-
command: docker run --rm -v "$(pwd)/scripts/":/scripts react-native-community/react-native /bin/sh -c "/scripts/test-emulator-headless.sh"
3734
- run:
3835
name: Checkout React Native
3936
command: git clone https://github.com/facebook/react-native.git

Dockerfile

+5-54
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,26 @@ LABEL Description="This image provides a base Android development environment fo
44

55
ENV DEBIAN_FRONTEND=noninteractive
66

7-
# Keep the previous SDK as a fallback until we've finished the migration.
8-
ARG ANDROID_BUILD_VERSION_FALLBACK=31
9-
ARG ANDROID_TOOLS_VERSION_FALLBACK=31.0.0
10-
117
# set default build arguments
128
# https://developer.android.com/studio#command-tools
139
ARG SDK_VERSION=commandlinetools-linux-8512546_latest.zip
1410
ARG ANDROID_BUILD_VERSION=33
1511
ARG ANDROID_TOOLS_VERSION=33.0.0
16-
ARG BUCK_VERSION=2022.05.05.01
17-
# Buck doesn't support versions beyond NDK 21
18-
# Therefore we need to diverge the NDK version and set NDK_HOME
19-
# for Buck to pick it up correctly.
20-
ARG NDK_VERSION_BUCK=21.4.7075529
21-
ARG NDK_VERSION_GRADLE=23.1.7779620
12+
ARG NDK_VERSION=23.1.7779620
2213
ARG NODE_VERSION=16
2314
ARG WATCHMAN_VERSION=4.9.0
24-
# For comaptibilites we install both CMake 3.18.x and 3.22.x, as AGP 7.3 autodownloads 3.18.x
25-
# Once we bump to AGP 7.4, we can remove 3.18.x and use only 3.22.x
2615
ARG CMAKE_VERSION=3.22.1
27-
ARG OLD_CMAKE_VERSION=3.18.1
2816

2917
# set default environment variables, please don't remove old env for compatibilty issue
3018
ENV ADB_INSTALL_TIMEOUT=10
3119
ENV ANDROID_HOME=/opt/android
3220
ENV ANDROID_SDK_ROOT=${ANDROID_HOME}
33-
ENV ANDROID_NDK_BUCK=${ANDROID_HOME}/ndk/$NDK_VERSION_BUCK
34-
ENV ANDROID_NDK_GRADLE=${ANDROID_HOME}/ndk/$NDK_VERSION_GRADLE
35-
# this is needed for Buck to be able to recognize NDK 21
36-
ENV NDK_HOME=${ANDROID_HOME}/ndk/$NDK_VERSION_BUCK
37-
ENV ANDROID_NDK_HOME=${ANDROID_HOME}/ndk/$NDK_VERSION_GRADLE
21+
ENV ANDROID_NDK_HOME=${ANDROID_HOME}/ndk/$NDK_VERSION
3822

3923
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
4024
ENV CMAKE_BIN_PATH=${ANDROID_HOME}/cmake/$CMAKE_VERSION/bin
4125

42-
ENV PATH=${CMAKE_BIN_PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/emulator:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:/opt/buck/bin/:${PATH}
26+
ENV PATH=${CMAKE_BIN_PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/emulator:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${PATH}
4327

4428
# Install system dependencies
4529
RUN apt update -qq && apt install -qq -y --no-install-recommends \
@@ -69,26 +53,6 @@ RUN apt update -qq && apt install -qq -y --no-install-recommends \
6953
zip \
7054
# Dev libraries requested by Hermes
7155
libicu-dev \
72-
# Emulator & video bridge dependencies
73-
libc6 \
74-
libdbus-1-3 \
75-
libfontconfig1 \
76-
libgcc1 \
77-
libpulse0 \
78-
libtinfo5 \
79-
libx11-6 \
80-
libxcb1 \
81-
libxdamage1 \
82-
libnss3 \
83-
libxcomposite1 \
84-
libxcursor1 \
85-
libxi6 \
86-
libxext6 \
87-
libxfixes3 \
88-
zlib1g \
89-
libgl1 \
90-
pulseaudio \
91-
socat \
9256
# Dev dependencies required by linters
9357
jq \
9458
shellcheck \
@@ -102,31 +66,18 @@ RUN curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n \
10266
&& npm install -g n \
10367
&& npm install -g yarn
10468

105-
# download and install buck using the java11 pex from Jitpack
106-
RUN curl -L https://jitpack.io/com/github/facebook/buck/v${BUCK_VERSION}/buck-v${BUCK_VERSION}-java11.pex -o /tmp/buck.pex \
107-
&& mv /tmp/buck.pex /usr/local/bin/buck \
108-
&& chmod +x /usr/local/bin/buck
109-
11069
# Full reference at https://dl.google.com/android/repository/repository2-1.xml
11170
# download and unpack android
112-
# workaround buck clang version detection by symlinking
11371
RUN curl -sS https://dl.google.com/android/repository/${SDK_VERSION} -o /tmp/sdk.zip \
11472
&& mkdir -p ${ANDROID_HOME}/cmdline-tools \
11573
&& unzip -q -d ${ANDROID_HOME}/cmdline-tools /tmp/sdk.zip \
11674
&& mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \
11775
&& rm /tmp/sdk.zip \
11876
&& yes | sdkmanager --licenses \
11977
&& yes | sdkmanager "platform-tools" \
120-
"emulator" \
12178
"platforms;android-$ANDROID_BUILD_VERSION" \
122-
"platforms;android-$ANDROID_BUILD_VERSION_FALLBACK" \
12379
"build-tools;$ANDROID_TOOLS_VERSION" \
124-
"build-tools;$ANDROID_TOOLS_VERSION_FALLBACK" \
12580
"cmake;$CMAKE_VERSION" \
126-
"cmake;$OLD_CMAKE_VERSION" \
127-
"system-images;android-21;google_apis;armeabi-v7a" \
128-
"ndk;$NDK_VERSION_BUCK" \
129-
"ndk;$NDK_VERSION_GRADLE" \
81+
"ndk;$NDK_VERSION" \
13082
&& rm -rf ${ANDROID_HOME}/.android \
131-
&& chmod 777 -R /opt/android \
132-
&& ln -s ${ANDROID_NDK_BUCK}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/9.0.9 ${ANDROID_NDK_BUCK}/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/9.0.8
83+
&& chmod 777 -R /opt/android

scripts/test-emulator-headless.sh

-12
This file was deleted.

scripts/test-react-native-setup.sh

+1-13
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,6 @@
22

33
set -e
44

5-
export KOTLIN_HOME="third-party/kotlin"
6-
7-
echo "Download Buck dependencies"
8-
./scripts/buck/buck_fetch.sh
9-
10-
echo "Build React Native via Buck"
11-
buck build ReactAndroid/src/main/java/com/facebook/react
12-
buck build ReactAndroid/src/main/java/com/facebook/react/shell
13-
145
echo "Build React Native via Gradle"
156
yarn install
16-
./gradlew --no-daemon :ReactAndroid:packageReactNdkLibsForBuck -PreactNativeArchitectures=arm64-v8a
17-
18-
echo "Assemble RNTester Release arm64-v8a"
19-
./gradlew --no-daemon :packages:rn-tester:android:app:assembleRelease -PreactNativeArchitectures=arm64-v8a
7+
./gradlew --no-daemon build -PreactNativeArchitectures=arm64-v8a

0 commit comments

Comments
 (0)