github.com/Blockdaemon/celo-blockchain@v0.0.0-20200129231733-e667f6b08419/Dockerfile.android (about) 1 # celohq/android-client 2 3 FROM circleci/android:api-28-alpha 4 5 USER root 6 7 # NDK see also: https://github.com/CircleCI-Public/circleci-dockerfiles/blob/cb8bda793023d3e919ea5553e2f2c04b71f53c49/android/images/api-28-ndk/Dockerfile#L181 8 9 ARG ndk_version=android-ndk-r19c 10 ARG android_ndk_home=/opt/android/${ndk_version} 11 12 # install NDK 13 RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/${ndk_version}.zip \ 14 https://dl.google.com/android/repository/${ndk_version}-linux-x86_64.zip && \ 15 sudo unzip -q /tmp/${ndk_version}.zip -d /opt/android && \ 16 rm /tmp/${ndk_version}.zip && \ 17 sudo chown -R circleci:circleci ${android_ndk_home} 18 19 ENV ANDROID_NDK_HOME ${android_ndk_home} 20 ENV ANDROID_NDK ${android_ndk_home} 21 22 RUN curl https://dl.google.com/go/go1.11.linux-amd64.tar.gz | tar -xz 23 ENV PATH=/go/bin:$PATH 24 ENV GOROOT=/go 25 ENV GOPATH=$HOME/go 26 27 RUN curl https://sh.rustup.rs -sSf | sh -s -- -y 28 ENV PATH=$PATH:$HOME/.cargo/bin 29 RUN rustup install 1.37.0 30 RUN rustup default 1.37.0 31 RUN rustup target add aarch64-linux-android 32 RUN rustup target add armv7-linux-androideabi 33 RUN rustup target add i686-linux-android 34 RUN rustup target add x86_64-linux-android 35 36 37 ## Using node installation from https://raw.githubusercontent.com/nodejs/docker-node/170ed2092d4925971f9cd3ad5dfc416e820f90fd/10/stretch/Dockerfile 38 39 RUN groupadd --gid 1000 node \ 40 && useradd --uid 1000 --gid node --shell /bin/bash --create-home node 41 42 ENV NODE_VERSION 10.15.3 43 44 RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ 45 && case "${dpkgArch##*-}" in \ 46 amd64) ARCH='x64';; \ 47 ppc64el) ARCH='ppc64le';; \ 48 s390x) ARCH='s390x';; \ 49 arm64) ARCH='arm64';; \ 50 armhf) ARCH='armv7l';; \ 51 i386) ARCH='x86';; \ 52 *) echo "unsupported architecture"; exit 1 ;; \ 53 esac \ 54 # gpg keys listed at https://github.com/nodejs/node#release-keys 55 && set -ex \ 56 && for key in \ 57 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 \ 58 FD3A5288F042B6850C66B31F09FE44734EB7990E \ 59 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 \ 60 DD8F2338BAE7501E3DD5AC78C273792F7D83545D \ 61 C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 \ 62 B9AE9905FFD7803F25714661B63B535A4C206CA9 \ 63 77984A986EBC2AA786BC0F66B01FBB92821C587A \ 64 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 \ 65 4ED778F539E3634C779C87C6D7062848A1AB005C \ 66 A48C2BEE680E841632CD4E44F07496B3EB3C1762 \ 67 B9E2F5981AA6E0CD28160D9FF13993A75599653C \ 68 ; do \ 69 gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ 70 gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ 71 gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ 72 done \ 73 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" \ 74 && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ 75 && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \ 76 && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - \ 77 && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ 78 && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt \ 79 && ln -s /usr/local/bin/node /usr/local/bin/nodejs 80 81 ENV YARN_VERSION 1.13.0 82 83 RUN set -ex \ 84 && for key in \ 85 6A010C5166006599AA17F08146C2130DFD2497F5 \ 86 ; do \ 87 gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ 88 gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ 89 gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ 90 done \ 91 && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ 92 && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ 93 && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ 94 && mkdir -p /opt \ 95 && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ 96 && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \ 97 && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \ 98 && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz 99 100 101 # Basic smoke test 102 RUN node --version