Skip to content

Instantly share code, notes, and snippets.

@dictvm
Created September 5, 2019 15:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dictvm/65261346546f32cdd06020c49cf3b032 to your computer and use it in GitHub Desktop.
Save dictvm/65261346546f32cdd06020c49cf3b032 to your computer and use it in GitHub Desktop.
react-native-yarn Dockerfile reconstructed
FROM dictvm/react-native-yarn:0.1.2
ADD file:204fb7ccb19ff7e863331131138621ff4d22720b3718e8f296902cc7d4f635b5 in /
RUN /bin/sh -c set -xe \
&& echo '#!/bin/sh' > /usr/sbin/policy-rc.d \
&& echo 'exit 101' >> /usr/sbin/policy-rc.d \
&& chmod +x /usr/sbin/policy-rc.d \
&& dpkg-divert --local --rename --add /sbin/initctl \
&& cp -a /usr/sbin/policy-rc.d /sbin/initctl \
&& sed -i 's/^exit.*/exit 0/' /sbin/initctl \
&& echo 'force-unsafe-io' > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup \
&& echo 'DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' > /etc/apt/apt.conf.d/docker-clean \
&& echo 'APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };' >> /etc/apt/apt.conf.d/docker-clean \
&& echo 'Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";' >> /etc/apt/apt.conf.d/docker-clean \
&& echo 'Acquire::Languages "none";' > /etc/apt/apt.conf.d/docker-no-languages \
&& echo 'Acquire::GzipIndexes "true"; Acquire::CompressionTypes::Order:: "gz";' > /etc/apt/apt.conf.d/docker-gzip-indexes \
&& echo 'Apt::AutoRemove::SuggestsImportant "false";' > /etc/apt/apt.conf.d/docker-autoremove-suggests
RUN /bin/sh -c rm -rf /var/lib/apt/lists/*
RUN /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/\1/g' /etc/apt/sources.list
RUN /bin/sh -c mkdir -p /run/systemd \
&& echo 'docker' > /run/systemd/container
CMD ["/bin/bash"]
ARG ANDROID_TOOLS_VERSION=25.2.5
ENV NPM_CONFIG_LOGLEVEL=info
ARG NODE_VERSION=10.7.0
ENV ADB_INSTALL_TIMEOUT=10
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/buck/bin/
ENV ANDROID_HOME=/opt/android
ENV ANDROID_SDK_HOME=/opt/android
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/buck/bin/:/opt/android/tools:/opt/android/tools/bin:/opt/android/platform-tools
ENV GRADLE_OPTS=-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx512m -XX:+HeapDumpOnOutOfMemoryError"
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c apt-get update -y \
&& apt-get install -y apt-transport-https ca-certificates autoconf automake expect curl g++ gcc git libqt5widgets5 lib32z1 lib32stdc++6 make maven openjdk-8-jdk python-dev python3-dev qml-module-qtquick-controls qtdeclarative5-dev unzip xz-utils locales \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get autoremove -y \
&& apt-get clean
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c set -ex \
&& for key in 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 B9AE9905FFD7803F25714661B63B535A4C206CA9 77984A986EBC2AA786BC0F66B01FBB92821C587A 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 FD3A5288F042B6850C66B31F09FE44734EB7990E 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 DD8F2338BAE7501E3DD5AC78C273792F7D83545D ; do gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; done \
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" \
&& curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \
&& gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
&& grep " node-v$NODE_VERSION-linux-x64.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr --strip-components=1 \
&& rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \
&& ln -s /usr/bin/node /usr/bin/nodejs \
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
&& apt-get update -y \
&& apt-get install -y --no-install-recommends yarn
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c npm config set spin=false
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c npm config set progress=false
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c npm install -g react-native-cli
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c yarn global add exp
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c mkdir -p /opt/android \
&& mkdir -p /opt/tools
WORKDIR /opt/android
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c curl --silent https://dl.google.com/android/repository/tools_r$ANDROID_TOOLS_VERSION-linux.zip > android.zip \
&& unzip android.zip \
&& rm android.zip
COPY file:e89b42d202c79ee9b0a138988ab2202487372ab71fe2aabf81ad2e390fdd6de6 in /opt/tools/android-accept-licenses.sh
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/buck/bin/:/opt/android/tools:/opt/android/tools/bin:/opt/android/platform-tools:/opt/tools
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c mkdir -p $ANDROID_HOME/licenses/ \
&& echo "d56f5187479451eabf01fb78af6dfcb131a6481e" > $ANDROID_HOME/licenses/android-sdk-license \
&& echo "84831b9409646a918e30573bab4c9c91346d8abd" > $ANDROID_HOME/licenses/android-sdk-preview-license
RUN |2 ANDROID_TOOLS_VERSION=25.2.5 NODE_VERSION=10.7.0 /bin/sh -c /opt/tools/android-accept-licenses.sh "$ANDROID_HOME/tools/bin/sdkmanager tools \"platform-tools\" \"build-tools;25.0.3\" \"platforms;android-23\" \"platforms;android-25\" \"platforms;android-26\" \"extras;android;m2repository\" \"extras;google;m2repository\" \"add-ons;addon-google_apis-google-24\" \"extras;google;google_play_services\"" \
&& $ANDROID_HOME/tools/bin/sdkmanager --update
VOLUME [/app]
WORKDIR /app
@dictvm
Copy link
Author

dictvm commented Sep 5, 2019

How I did this:

docker pull chenzj/dfimage
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm chenzj/dfimage"
docker pull dictvm/react-native-yarn:0.1.2
dfimage $(docker images | grep react-native-yarn | awk {'print $3'}) >> /tmp/Dockerfile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment