From 4f8fc5e010c6832b8d8de445f185287b20700fd9 Mon Sep 17 00:00:00 2001 From: CarlosEDP Date: Tue, 18 Dec 2018 16:42:47 -0200 Subject: [PATCH 1/3] Add ARM64 build --- backend/Dockerfile | 15 +++++++++++---- probe/endpoint/dns_snooper_others.go | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 952a30643..c98bb3477 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -39,10 +39,17 @@ RUN export arch_val="$(dpkg --print-architecture)"; \ RUN pip install yapf==0.16.2 flake8==3.3.0 requests==2.19.1 # Install Docker (client only) -ENV DOCKERVERSION=17.03.2-ce -RUN curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz && \ - tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && \ - rm docker-${DOCKERVERSION}.tgz +ENV DOCKERVERSION=17.09.1-ce +RUN export arch_val="$(dpkg --print-architecture)"; \ + if [ "$arch_val" = "arm64" ]; then \ + curl -fsSLO https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKERVERSION}.tgz && \ + tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && \ + rm docker-${DOCKERVERSION}.tgz; \ + else \ + curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz && \ + tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && \ + rm docker-${DOCKERVERSION}.tgz; \ + fi; COPY build.sh / ENTRYPOINT ["/build.sh"] diff --git a/probe/endpoint/dns_snooper_others.go b/probe/endpoint/dns_snooper_others.go index 52b18cde4..43b4ec6c4 100644 --- a/probe/endpoint/dns_snooper_others.go +++ b/probe/endpoint/dns_snooper_others.go @@ -1,4 +1,4 @@ -// +build darwin arm +// +build darwin arm arm64 // Cross-compiling the snooper requires having pcap binaries, // let's disable it for now. From 833e521dce971e77de085381862c143ccaca06b6 Mon Sep 17 00:00:00 2001 From: CarlosEDP Date: Tue, 18 Dec 2018 21:23:32 -0200 Subject: [PATCH 2/3] Check architecture before downloading Docker client --- backend/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index c98bb3477..82b0c7e34 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -45,7 +45,7 @@ RUN export arch_val="$(dpkg --print-architecture)"; \ curl -fsSLO https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKERVERSION}.tgz && \ tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && \ rm docker-${DOCKERVERSION}.tgz; \ - else \ + elif [ "$arch_val" = "amd64" ]; then \ curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz && \ tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && \ rm docker-${DOCKERVERSION}.tgz; \ From b25f7e84159cb6fae5f115921c349612a9fa6297 Mon Sep 17 00:00:00 2001 From: CarlosEDP Date: Wed, 2 Jan 2019 11:46:56 -0200 Subject: [PATCH 3/3] Download Docker client for multiple architectures and print error if not found. --- backend/Dockerfile | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 82b0c7e34..40e228997 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -42,14 +42,17 @@ RUN pip install yapf==0.16.2 flake8==3.3.0 requests==2.19.1 ENV DOCKERVERSION=17.09.1-ce RUN export arch_val="$(dpkg --print-architecture)"; \ if [ "$arch_val" = "arm64" ]; then \ - curl -fsSLO https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKERVERSION}.tgz && \ - tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && \ - rm docker-${DOCKERVERSION}.tgz; \ + curl -fsSLO https://download.docker.com/linux/static/stable/aarch64/docker-${DOCKERVERSION}.tgz; \ elif [ "$arch_val" = "amd64" ]; then \ - curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz && \ - tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && \ - rm docker-${DOCKERVERSION}.tgz; \ - fi; + curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz; \ + elif [ "$arch_val" = "ppc64el" ]; then \ + curl -fsSLO https://download.docker.com/linux/static/stable/ppc64le/docker-${DOCKERVERSION}.tgz; \ + else \ + echo "No Docker client found for architecture $(arch_val)." && \ + exit 1; \ + fi; \ + tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && \ + rm docker-${DOCKERVERSION}.tgz; COPY build.sh / ENTRYPOINT ["/build.sh"]