From 0f0e5876aeaae3a97773540dc90b05daa9d462f4 Mon Sep 17 00:00:00 2001 From: Robin Schneider Date: Tue, 31 Dec 2019 15:17:31 +0100 Subject: [PATCH] Move `dpkg --add-architecture` before the first apt call Thanks to @dani-garcia for the review! --- docker/Dockerfile.j2 | 25 ++++++++++++------------- docker/aarch64/mysql/Dockerfile | 20 ++++++++++---------- docker/aarch64/sqlite/Dockerfile | 20 ++++++++++---------- docker/armv6/mysql/Dockerfile | 20 ++++++++++---------- docker/armv6/sqlite/Dockerfile | 20 ++++++++++---------- docker/armv7/mysql/Dockerfile | 20 ++++++++++---------- docker/armv7/sqlite/Dockerfile | 8 ++++---- 7 files changed, 66 insertions(+), 67 deletions(-) diff --git a/docker/Dockerfile.j2 b/docker/Dockerfile.j2 index f8cb0297..dd64be42 100644 --- a/docker/Dockerfile.j2 +++ b/docker/Dockerfile.j2 @@ -87,6 +87,18 @@ RUN rustup set profile minimal ENV USER "root" {% endif %} +{% if "aarch64" in target_file or "armv" in target_file %} +# Install required build libs for {{ package_arch_name }} architecture. +RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ + /etc/apt/sources.list.d/deb-src.list \ + && dpkg --add-architecture {{ package_arch_name }} \ + && apt-get update \ + && apt-get install -y \ + --no-install-recommends \ + libssl-dev{{ package_arch_prefix }} \ + libc6-dev{{ package_arch_prefix }} + +{% endif -%} {% if "aarch64" in target_file %} RUN apt-get update \ && apt-get install -y \ @@ -143,19 +155,6 @@ RUN apt-get update && apt-get install -y \ RUN USER=root cargo new --bin app WORKDIR /app -{% if "aarch64" in target_file or "armv" in target_file %} -# Install required build libs for {{ package_arch_name }} architecture. -RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ - /etc/apt/sources.list.d/deb-src.list \ - && dpkg --add-architecture {{ package_arch_name }} \ - && apt-get update \ - && apt-get install -y \ - --no-install-recommends \ - libssl-dev{{ package_arch_prefix }} \ - libc6-dev{{ package_arch_prefix }} - -{% endif -%} - # Copies over *only* your manifests and build files COPY ./Cargo.* ./ COPY ./rust-toolchain ./rust-toolchain diff --git a/docker/aarch64/mysql/Dockerfile b/docker/aarch64/mysql/Dockerfile index 6562d4d8..e7ec2402 100644 --- a/docker/aarch64/mysql/Dockerfile +++ b/docker/aarch64/mysql/Dockerfile @@ -37,6 +37,16 @@ ARG DB=mysql # Don't download rust docs RUN rustup set profile minimal +# Install required build libs for arm64 architecture. +RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ + /etc/apt/sources.list.d/deb-src.list \ + && dpkg --add-architecture arm64 \ + && apt-get update \ + && apt-get install -y \ + --no-install-recommends \ + libssl-dev:arm64 \ + libc6-dev:arm64 + RUN apt-get update \ && apt-get install -y \ --no-install-recommends \ @@ -58,16 +68,6 @@ RUN apt-get update && apt-get install -y \ RUN USER=root cargo new --bin app WORKDIR /app -# Install required build libs for arm64 architecture. -RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ - /etc/apt/sources.list.d/deb-src.list \ - && dpkg --add-architecture arm64 \ - && apt-get update \ - && apt-get install -y \ - --no-install-recommends \ - libssl-dev:arm64 \ - libc6-dev:arm64 - # Copies over *only* your manifests and build files COPY ./Cargo.* ./ COPY ./rust-toolchain ./rust-toolchain diff --git a/docker/aarch64/sqlite/Dockerfile b/docker/aarch64/sqlite/Dockerfile index cea96491..0945e573 100644 --- a/docker/aarch64/sqlite/Dockerfile +++ b/docker/aarch64/sqlite/Dockerfile @@ -37,6 +37,16 @@ ARG DB=sqlite # Don't download rust docs RUN rustup set profile minimal +# Install required build libs for arm64 architecture. +RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ + /etc/apt/sources.list.d/deb-src.list \ + && dpkg --add-architecture arm64 \ + && apt-get update \ + && apt-get install -y \ + --no-install-recommends \ + libssl-dev:arm64 \ + libc6-dev:arm64 + RUN apt-get update \ && apt-get install -y \ --no-install-recommends \ @@ -52,16 +62,6 @@ ENV USER "root" RUN USER=root cargo new --bin app WORKDIR /app -# Install required build libs for arm64 architecture. -RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ - /etc/apt/sources.list.d/deb-src.list \ - && dpkg --add-architecture arm64 \ - && apt-get update \ - && apt-get install -y \ - --no-install-recommends \ - libssl-dev:arm64 \ - libc6-dev:arm64 - # Copies over *only* your manifests and build files COPY ./Cargo.* ./ COPY ./rust-toolchain ./rust-toolchain diff --git a/docker/armv6/mysql/Dockerfile b/docker/armv6/mysql/Dockerfile index ed389253..ceb2ba64 100644 --- a/docker/armv6/mysql/Dockerfile +++ b/docker/armv6/mysql/Dockerfile @@ -37,6 +37,16 @@ ARG DB=mysql # Don't download rust docs RUN rustup set profile minimal +# Install required build libs for armel architecture. +RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ + /etc/apt/sources.list.d/deb-src.list \ + && dpkg --add-architecture armel \ + && apt-get update \ + && apt-get install -y \ + --no-install-recommends \ + libssl-dev:armel \ + libc6-dev:armel + RUN apt-get update \ && apt-get install -y \ --no-install-recommends \ @@ -58,16 +68,6 @@ RUN apt-get update && apt-get install -y \ RUN USER=root cargo new --bin app WORKDIR /app -# Install required build libs for armel architecture. -RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ - /etc/apt/sources.list.d/deb-src.list \ - && dpkg --add-architecture armel \ - && apt-get update \ - && apt-get install -y \ - --no-install-recommends \ - libssl-dev:armel \ - libc6-dev:armel - # Copies over *only* your manifests and build files COPY ./Cargo.* ./ COPY ./rust-toolchain ./rust-toolchain diff --git a/docker/armv6/sqlite/Dockerfile b/docker/armv6/sqlite/Dockerfile index 98afd9ba..638cd983 100644 --- a/docker/armv6/sqlite/Dockerfile +++ b/docker/armv6/sqlite/Dockerfile @@ -37,6 +37,16 @@ ARG DB=sqlite # Don't download rust docs RUN rustup set profile minimal +# Install required build libs for armel architecture. +RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ + /etc/apt/sources.list.d/deb-src.list \ + && dpkg --add-architecture armel \ + && apt-get update \ + && apt-get install -y \ + --no-install-recommends \ + libssl-dev:armel \ + libc6-dev:armel + RUN apt-get update \ && apt-get install -y \ --no-install-recommends \ @@ -52,16 +62,6 @@ ENV USER "root" RUN USER=root cargo new --bin app WORKDIR /app -# Install required build libs for armel architecture. -RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ - /etc/apt/sources.list.d/deb-src.list \ - && dpkg --add-architecture armel \ - && apt-get update \ - && apt-get install -y \ - --no-install-recommends \ - libssl-dev:armel \ - libc6-dev:armel - # Copies over *only* your manifests and build files COPY ./Cargo.* ./ COPY ./rust-toolchain ./rust-toolchain diff --git a/docker/armv7/mysql/Dockerfile b/docker/armv7/mysql/Dockerfile index 6e32c8c9..74265b45 100644 --- a/docker/armv7/mysql/Dockerfile +++ b/docker/armv7/mysql/Dockerfile @@ -37,16 +37,6 @@ ARG DB=mysql # Don't download rust docs RUN rustup set profile minimal -# Install MySQL package -RUN apt-get update && apt-get install -y \ - --no-install-recommends \ - libmariadb-dev:armhf \ - && rm -rf /var/lib/apt/lists/* - -# Creates a dummy project used to grab dependencies -RUN USER=root cargo new --bin app -WORKDIR /app - # Install required build libs for armhf architecture. RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ /etc/apt/sources.list.d/deb-src.list \ @@ -57,6 +47,16 @@ RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ libssl-dev:armhf \ libc6-dev:armhf +# Install MySQL package +RUN apt-get update && apt-get install -y \ + --no-install-recommends \ + libmariadb-dev:armhf \ + && rm -rf /var/lib/apt/lists/* + +# Creates a dummy project used to grab dependencies +RUN USER=root cargo new --bin app +WORKDIR /app + # Copies over *only* your manifests and build files COPY ./Cargo.* ./ COPY ./rust-toolchain ./rust-toolchain diff --git a/docker/armv7/sqlite/Dockerfile b/docker/armv7/sqlite/Dockerfile index ba9bb117..32bcb0b2 100644 --- a/docker/armv7/sqlite/Dockerfile +++ b/docker/armv7/sqlite/Dockerfile @@ -37,10 +37,6 @@ ARG DB=sqlite # Don't download rust docs RUN rustup set profile minimal -# Creates a dummy project used to grab dependencies -RUN USER=root cargo new --bin app -WORKDIR /app - # Install required build libs for armhf architecture. RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ /etc/apt/sources.list.d/deb-src.list \ @@ -51,6 +47,10 @@ RUN sed 's/^deb/deb-src/' /etc/apt/sources.list > \ libssl-dev:armhf \ libc6-dev:armhf +# Creates a dummy project used to grab dependencies +RUN USER=root cargo new --bin app +WORKDIR /app + # Copies over *only* your manifests and build files COPY ./Cargo.* ./ COPY ./rust-toolchain ./rust-toolchain