From 130941849d08483354022ed927758e4d0dc2cd67 Mon Sep 17 00:00:00 2001 From: Dim0N22 Date: Sun, 28 Mar 2021 02:38:44 +0000 Subject: [PATCH] Refactor android-arm docker image --- Dockerfile | 2 +- Makefile | 6 ++---- docker/android-arm.Dockerfile | 37 ++++++++++++++++++++--------------- 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/Dockerfile b/Dockerfile index 102d031e..be65502a 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:stretch +FROM debian:buster RUN apt-get update && apt-get -y -f install \ bash \ diff --git a/Makefile b/Makefile index fa54ff89..26ac9179 100755 --- a/Makefile +++ b/Makefile @@ -29,13 +29,12 @@ all: done base: - $(DOCKER) build -t $(IMAGE):base . + $(DOCKER) build -t $(PROJECT)/$(IMAGE):base . $(PLATFORMS): base - $(DOCKER) build -t $(IMAGE):$@ -f docker/$@.Dockerfile docker + $(DOCKER) build -t $(PROJECT)/$(IMAGE):$@ -f docker/$@.Dockerfile docker push: - docker tag cross-compiler:$(PLATFORM) $(PROJECT)/cross-compiler:$(PLATFORM) docker push $(PROJECT)/cross-compiler:$(PLATFORM) push-all: @@ -45,7 +44,6 @@ push-all: pull: docker pull $(PROJECT)/cross-compiler:$(PLATFORM) - docker tag $(PROJECT)/cross-compiler:$(PLATFORM) cross-compiler:$(PLATFORM) pull-all: for i in $(PLATFORMS); do \ diff --git a/docker/android-arm.Dockerfile b/docker/android-arm.Dockerfile index 9c435f34..36cc3a98 100755 --- a/docker/android-arm.Dockerfile +++ b/docker/android-arm.Dockerfile @@ -1,23 +1,28 @@ -FROM cross-compiler:base +FROM elementumorg/cross-compiler:base as ndk +WORKDIR /ndk -ENV CROSS_TRIPLE arm-linux-androideabi +ENV NDK android-ndk-r20b +RUN wget -nv https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip +RUN unzip ${NDK}-linux-x86_64.zip ${NDK}/toolchains/llvm/prebuilt/linux-x86_64/* 1>log 2>err +RUN ln -s ${NDK}/toolchains/llvm/prebuilt/linux-x86_64/ toolchain + +FROM elementumorg/cross-compiler:base as base + +ENV CROSS_TRIPLE armv7a-linux-androideabi21 ENV CROSS_ROOT /usr/${CROSS_TRIPLE} -ENV PATH ${PATH}:${CROSS_ROOT}/bin:${CROSS_ROOT}/go/bin +ENV PATH ${PATH}:${CROSS_ROOT}/bin ENV LD_LIBRARY_PATH ${CROSS_ROOT}/lib:${LD_LIBRARY_PATH} ENV PKG_CONFIG_PATH ${CROSS_ROOT}/lib/pkgconfig:${PKG_CONFIG_PATH} -RUN apt-get update && apt-get install -y python - -ENV NDK android-ndk-r20b - -RUN set -ex && \ - mkdir -p /build && \ - cd /build && \ - wget -nv https://dl.google.com/android/repository/${NDK}-linux-x86_64.zip && \ - unzip ${NDK}-linux-x86_64.zip 1>log 2>err && \ - cd ${NDK} && \ - ./build/tools/make_standalone_toolchain.py --arch=arm --api=21 --install-dir=${CROSS_ROOT} && \ - cd / && rm -rf /build +COPY --from=ndk /ndk/toolchain/arm-linux-androideabi/bin/ld ${CROSS_ROOT}/bin/ +COPY --from=ndk /ndk/toolchain/bin/clang++ /ndk/toolchain/bin/clang /ndk/toolchain/bin/${CROSS_TRIPLE}-clang* ${CROSS_ROOT}/bin/ +COPY --from=ndk /ndk/toolchain/bin/arm-linux-androideabi-ar ${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar +COPY --from=ndk /ndk/toolchain/bin/arm-linux-androideabi-ranlib ${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ranlib +COPY --from=ndk /ndk/toolchain/lib/gcc ${CROSS_ROOT}/lib/gcc/ +COPY --from=ndk /ndk/toolchain/lib64/libc++.so.1 ${CROSS_ROOT}/lib64/ +COPY --from=ndk /ndk/toolchain/lib64/clang ${CROSS_ROOT}/lib64/clang/ +COPY --from=ndk /ndk/toolchain/sysroot/usr/include ${CROSS_ROOT}/sysroot/usr/include/ +COPY --from=ndk /ndk/toolchain/sysroot/usr/lib/arm-linux-androideabi ${CROSS_ROOT}/sysroot/usr/lib/arm-linux-androideabi RUN cd ${CROSS_ROOT}/bin && \ - ln -s ${CROSS_TRIPLE}-clang ${CROSS_TRIPLE}-cc + ln -s ${CROSS_TRIPLE}-clang ${CROSS_TRIPLE}-gcc \ No newline at end of file