From 4e28f48061284463c46408c460f02028827a4b1b Mon Sep 17 00:00:00 2001 From: Miao Wang Date: Mon, 14 Jun 2021 01:29:16 +0800 Subject: [PATCH] pub-mirror: fix docker build --- dockerfiles/pub-mirror/Dockerfile | 47 ++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/dockerfiles/pub-mirror/Dockerfile b/dockerfiles/pub-mirror/Dockerfile index 5e2e5af..d697907 100644 --- a/dockerfiles/pub-mirror/Dockerfile +++ b/dockerfiles/pub-mirror/Dockerfile @@ -1,4 +1,49 @@ -FROM google/dart:2 +FROM debian:stable AS dart-build + +ARG DART_VERSION="2.12.4" + +WORKDIR /tmp/ + +RUN \ + apt-get -q update && apt-get install --no-install-recommends -y -q \ + gnupg2 curl git ca-certificates unzip openssh-client && \ + case "$(uname -m)" in armv7l | armv7) ARCH="arm";; aarch64) ARCH="arm64";; *) ARCH="x64";; esac && \ + curl -O https://storage.googleapis.com/dart-archive/channels/stable/release/$DART_VERSION/sdk/dartsdk-linux-$ARCH-release.zip && \ + unzip dartsdk-linux-$ARCH-release.zip -d /usr/lib/ && \ + rm dartsdk-linux-$ARCH-release.zip && \ + mv /usr/lib/dart-sdk /usr/lib/dart && \ + chmod -R "og+rX" /usr/lib/dart + +ENV DART_SDK /usr/lib/dart +ENV PATH $DART_SDK/bin:/root/.pub-cache/bin:$PATH +WORKDIR /root + +RUN set -eux; \ + ( case "$(uname -m)" in \ + armv7l | armv7) ARCH="arm-linux-gnueabihf" ; \ + echo "/lib/ld-linux-armhf.so.3" ; \ + echo "/lib/arm-linux-gnueabihf/ld-linux-armhf.so.3" ;; \ + aarch64) ARCH="aarch64-linux-gnu" ; \ + echo "/lib/ld-linux-aarch64.so.1" ; \ + echo "/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1" ;; \ + *) ARCH="x86_64-linux-gnu" ; \ + echo "/lib64/ld-linux-x86-64.so.2" ;; \ + esac; \ + echo "/etc/nsswitch.conf"; \ + echo "/etc/ssl/certs"; \ + echo "/usr/share/ca-certificates"; \ + echo "/bin/bash"; echo "/bin/sh"; \ + for i in libc.so.6 libdl.so.2 libm.so.6 libnss_dns.so.2 libpthread.so.0 \ + libresolv.so.2 librt.so.1 libtinfo.so.6; do \ + echo "/lib/$ARCH/$i"; \ + done \ + ) | while read p; do \ + dir="$(dirname "$p")"; \ + mkdir -p "/runtime$dir"; \ + cp --archive --link --dereference --no-target-directory "$p" "/runtime$p"; \ + done + +FROM dart-build MAINTAINER Hui Yiqun ENV PUB_CACHE /pub-cache