mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Make CC toolchains available for other targets
This cross-compiling other binaries simpler. It would be nice if the cross Makefile target built all the required bins, but at least this is a first step. Signed-off-by: Brian Goff <cpuguy83@gmail.com>
This commit is contained in:
parent
4ed9059e55
commit
f067a0acaa
1 changed files with 31 additions and 15 deletions
46
Dockerfile
46
Dockerfile
|
@ -94,16 +94,28 @@ RUN /download-frozen-image-v2.sh /build \
|
||||||
hello-world:latest@sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c
|
hello-world:latest@sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c
|
||||||
# See also ensureFrozenImagesLinux() in "integration-cli/fixtures_linux_daemon_test.go" (which needs to be updated when adding images to this list)
|
# See also ensureFrozenImagesLinux() in "integration-cli/fixtures_linux_daemon_test.go" (which needs to be updated when adding images to this list)
|
||||||
|
|
||||||
# Just a little hack so we don't have to install these deps twice, once for runc and once for dockerd
|
FROM base AS cross-false
|
||||||
FROM base AS runtime-dev-cross-false
|
|
||||||
|
FROM base AS cross-true
|
||||||
|
RUN dpkg --add-architecture armhf
|
||||||
|
RUN dpkg --add-architecture arm64
|
||||||
|
RUN dpkg --add-architecture armel
|
||||||
|
RUN if [ "$(go env GOHOSTARCH)" = "amd64" ]; then \
|
||||||
|
apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
crossbuild-essential-armhf \
|
||||||
|
crossbuild-essential-arm64 \
|
||||||
|
crossbuild-essential-armel; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
FROM cross-${CROSS} as dev-base
|
||||||
|
|
||||||
|
FROM dev-base AS runtime-dev-cross-false
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
libapparmor-dev \
|
libapparmor-dev \
|
||||||
libseccomp-dev
|
libseccomp-dev
|
||||||
|
|
||||||
FROM runtime-dev-cross-false AS runtime-dev-cross-true
|
FROM cross-true AS runtime-dev-cross-true
|
||||||
RUN dpkg --add-architecture armhf
|
|
||||||
RUN dpkg --add-architecture arm64
|
|
||||||
RUN dpkg --add-architecture armel
|
|
||||||
# These crossbuild packages rely on gcc-<arch>, but this doesn't want to install
|
# These crossbuild packages rely on gcc-<arch>, but this doesn't want to install
|
||||||
# on non-amd64 systems.
|
# on non-amd64 systems.
|
||||||
# Additionally, the crossbuild-amd64 is currently only on debian:buster, so
|
# Additionally, the crossbuild-amd64 is currently only on debian:buster, so
|
||||||
|
@ -111,12 +123,16 @@ RUN dpkg --add-architecture armel
|
||||||
RUN if [ "$(go env GOHOSTARCH)" = "amd64" ]; then \
|
RUN if [ "$(go env GOHOSTARCH)" = "amd64" ]; then \
|
||||||
apt-get update \
|
apt-get update \
|
||||||
&& apt-get install -y \
|
&& apt-get install -y \
|
||||||
crossbuild-essential-armhf \
|
|
||||||
crossbuild-essential-arm64 \
|
|
||||||
crossbuild-essential-armel \
|
|
||||||
libseccomp-dev:armhf \
|
libseccomp-dev:armhf \
|
||||||
libseccomp-dev:arm64 \
|
libseccomp-dev:arm64 \
|
||||||
libseccomp-dev:armel; \
|
libseccomp-dev:armel \
|
||||||
|
libapparmor-dev:armhf \
|
||||||
|
libapparmor-dev:arm64 \
|
||||||
|
libapparmor-dev:armel \
|
||||||
|
# install this arches seccomp here due to compat issues with the v0 builder
|
||||||
|
# This is as opposed to inheriting from runtime-dev-cross-false
|
||||||
|
libapparmor-dev \
|
||||||
|
libseccomp-dev; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FROM runtime-dev-cross-${CROSS} AS runtime-dev
|
FROM runtime-dev-cross-${CROSS} AS runtime-dev
|
||||||
|
@ -133,14 +149,14 @@ COPY hack/dockerfile/install/install.sh ./install.sh
|
||||||
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
||||||
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
||||||
|
|
||||||
FROM base AS containerd
|
FROM dev-base AS containerd
|
||||||
RUN apt-get update && apt-get install -y btrfs-tools
|
RUN apt-get update && apt-get install -y btrfs-tools
|
||||||
ENV INSTALL_BINARY_NAME=containerd
|
ENV INSTALL_BINARY_NAME=containerd
|
||||||
COPY hack/dockerfile/install/install.sh ./install.sh
|
COPY hack/dockerfile/install/install.sh ./install.sh
|
||||||
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
||||||
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
||||||
|
|
||||||
FROM base AS proxy
|
FROM dev-base AS proxy
|
||||||
ENV INSTALL_BINARY_NAME=proxy
|
ENV INSTALL_BINARY_NAME=proxy
|
||||||
COPY hack/dockerfile/install/install.sh ./install.sh
|
COPY hack/dockerfile/install/install.sh ./install.sh
|
||||||
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
||||||
|
@ -152,7 +168,7 @@ COPY hack/dockerfile/install/install.sh ./install.sh
|
||||||
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
||||||
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
||||||
|
|
||||||
FROM base AS dockercli
|
FROM dev-base AS dockercli
|
||||||
ENV INSTALL_BINARY_NAME=dockercli
|
ENV INSTALL_BINARY_NAME=dockercli
|
||||||
COPY hack/dockerfile/install/install.sh ./install.sh
|
COPY hack/dockerfile/install/install.sh ./install.sh
|
||||||
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
||||||
|
@ -164,14 +180,14 @@ COPY hack/dockerfile/install/install.sh ./install.sh
|
||||||
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
||||||
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
||||||
|
|
||||||
FROM base AS tini
|
FROM dev-base AS tini
|
||||||
RUN apt-get update && apt-get install -y cmake vim-common
|
RUN apt-get update && apt-get install -y cmake vim-common
|
||||||
COPY hack/dockerfile/install/install.sh ./install.sh
|
COPY hack/dockerfile/install/install.sh ./install.sh
|
||||||
ENV INSTALL_BINARY_NAME=tini
|
ENV INSTALL_BINARY_NAME=tini
|
||||||
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
||||||
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
RUN PREFIX=/build ./install.sh $INSTALL_BINARY_NAME
|
||||||
|
|
||||||
FROM base AS rootlesskit
|
FROM dev-base AS rootlesskit
|
||||||
ENV INSTALL_BINARY_NAME=rootlesskit
|
ENV INSTALL_BINARY_NAME=rootlesskit
|
||||||
COPY hack/dockerfile/install/install.sh ./install.sh
|
COPY hack/dockerfile/install/install.sh ./install.sh
|
||||||
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
COPY hack/dockerfile/install/$INSTALL_BINARY_NAME.installer ./
|
||||||
|
|
Loading…
Reference in a new issue