From 20b38c5942e8b4c82eee43cc94b9f4e960f9426c Mon Sep 17 00:00:00 2001 From: Boris Pruessmann Date: Mon, 20 Feb 2017 19:00:43 +0100 Subject: [PATCH 1/3] Added debian-jessie for aarch64 Adding debian-jessie as output for running make deb on aarch64. Also update GO_VERSION to 1.8 to fix issues with incorrect pagesize.- Signed-off-by: Boris Pruessmann Upstream-commit: f9543b339dcc47b28e0eb1b39b6a59b70ca3867e Component: engine --- .../deb/aarch64/debian-jessie/Dockerfile | 25 +++++++++++++++++++ .../contrib/builder/deb/aarch64/generate.sh | 14 ++++++++--- .../deb/aarch64/ubuntu-trusty/Dockerfile | 2 +- .../deb/aarch64/ubuntu-xenial/Dockerfile | 2 +- 4 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile diff --git a/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile b/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile new file mode 100644 index 0000000000..b86c9dffe1 --- /dev/null +++ b/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile @@ -0,0 +1,25 @@ +# +# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"! +# + +FROM aarch64/debian:jessie + +RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list +RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev pkg-config vim-common libsystemd-journal-dev golang-1.6-go --no-install-recommends && rm -rf /var/lib/apt/lists/* + +RUN update-alternatives --install /usr/bin/go go /usr/lib/go-1.6/bin/go 100 + +# Install Go +# aarch64 doesn't have official go binaries, so use the version of go installed from +# the image to build go from source. +ENV GO_VERSION 1.7.5 +RUN mkdir /usr/src/go && curl -fsSL https://golang.org/dl/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/src/go -xz --strip-components=1 \ + && cd /usr/src/go/src \ + && GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash + +ENV PATH /usr/src/go/bin:$PATH + +ENV AUTO_GOPATH 1 + +ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux +ENV RUNC_BUILDTAGS apparmor selinux diff --git a/components/engine/contrib/builder/deb/aarch64/generate.sh b/components/engine/contrib/builder/deb/aarch64/generate.sh index d27d48ca92..9188b74218 100755 --- a/components/engine/contrib/builder/deb/aarch64/generate.sh +++ b/components/engine/contrib/builder/deb/aarch64/generate.sh @@ -61,7 +61,7 @@ for version in "${versions[@]}"; do ) case "$suite" in - trusty) + jessie|trusty) packages+=( libsystemd-journal-dev ) # aarch64 doesn't have an official downloadable binary for go. # And gccgo for trusty only includes Go 1.2 implementation which @@ -83,12 +83,20 @@ for version in "${versions[@]}"; do ;; esac + case "$suite" in + jessie) + echo 'RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list' >> "$version/Dockerfile" + ;; + *) + ;; + esac + # update and install packages echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile" echo >> "$version/Dockerfile" case "$suite" in - trusty) + jessie|trusty) echo 'RUN update-alternatives --install /usr/bin/go go /usr/lib/go-1.6/bin/go 100' >> "$version/Dockerfile" echo >> "$version/Dockerfile" ;; @@ -106,7 +114,7 @@ for version in "${versions[@]}"; do echo ' && GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash' >> "$version/Dockerfile" echo >> "$version/Dockerfile" - echo 'ENV PATH $PATH:/usr/src/go/bin' >> "$version/Dockerfile" + echo 'ENV PATH /usr/src/go/bin:$PATH' >> "$version/Dockerfile" echo >> "$version/Dockerfile" echo "ENV AUTO_GOPATH 1" >> "$version/Dockerfile" diff --git a/components/engine/contrib/builder/deb/aarch64/ubuntu-trusty/Dockerfile b/components/engine/contrib/builder/deb/aarch64/ubuntu-trusty/Dockerfile index 649d9f8b5b..7e7f6ddf5d 100644 --- a/components/engine/contrib/builder/deb/aarch64/ubuntu-trusty/Dockerfile +++ b/components/engine/contrib/builder/deb/aarch64/ubuntu-trusty/Dockerfile @@ -16,7 +16,7 @@ RUN mkdir /usr/src/go && curl -fsSL https://golang.org/dl/go${GO_VERSION}.src.ta && cd /usr/src/go/src \ && GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash -ENV PATH $PATH:/usr/src/go/bin +ENV PATH /usr/src/go/bin:$PATH ENV AUTO_GOPATH 1 diff --git a/components/engine/contrib/builder/deb/aarch64/ubuntu-xenial/Dockerfile b/components/engine/contrib/builder/deb/aarch64/ubuntu-xenial/Dockerfile index 1ef462abf8..8c3cb8e137 100644 --- a/components/engine/contrib/builder/deb/aarch64/ubuntu-xenial/Dockerfile +++ b/components/engine/contrib/builder/deb/aarch64/ubuntu-xenial/Dockerfile @@ -14,7 +14,7 @@ RUN mkdir /usr/src/go && curl -fsSL https://golang.org/dl/go${GO_VERSION}.src.ta && cd /usr/src/go/src \ && GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash -ENV PATH $PATH:/usr/src/go/bin +ENV PATH /usr/src/go/bin:$PATH ENV AUTO_GOPATH 1 From 406ba489c6ec7182768b3c9fe09a012cac816b67 Mon Sep 17 00:00:00 2001 From: Boris Pruessmann Date: Wed, 1 Mar 2017 07:40:44 +0100 Subject: [PATCH 2/3] Added support for debian-stretch (aarch64) Signed-off-by: Boris Pruessmann Upstream-commit: 2ca57fe0b07d01e1d35ecc0cc3fbb318c7d25aa6 Component: engine --- .../deb/aarch64/debian-stretch/Dockerfile | 22 +++++++++++++++++++ .../contrib/builder/deb/aarch64/generate.sh | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 components/engine/contrib/builder/deb/aarch64/debian-stretch/Dockerfile diff --git a/components/engine/contrib/builder/deb/aarch64/debian-stretch/Dockerfile b/components/engine/contrib/builder/deb/aarch64/debian-stretch/Dockerfile new file mode 100644 index 0000000000..00546e256e --- /dev/null +++ b/components/engine/contrib/builder/deb/aarch64/debian-stretch/Dockerfile @@ -0,0 +1,22 @@ +# +# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"! +# + +FROM aarch64/debian:stretch + +RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev pkg-config vim-common libsystemd-dev golang-go libseccomp-dev --no-install-recommends && rm -rf /var/lib/apt/lists/* + +# Install Go +# aarch64 doesn't have official go binaries, so use the version of go installed from +# the image to build go from source. +ENV GO_VERSION 1.7.5 +RUN mkdir /usr/src/go && curl -fsSL https://golang.org/dl/go${GO_VERSION}.src.tar.gz | tar -v -C /usr/src/go -xz --strip-components=1 \ + && cd /usr/src/go/src \ + && GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash + +ENV PATH /usr/src/go/bin:$PATH + +ENV AUTO_GOPATH 1 + +ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux seccomp +ENV RUNC_BUILDTAGS apparmor selinux seccomp diff --git a/components/engine/contrib/builder/deb/aarch64/generate.sh b/components/engine/contrib/builder/deb/aarch64/generate.sh index 9188b74218..0ef5a03506 100755 --- a/components/engine/contrib/builder/deb/aarch64/generate.sh +++ b/components/engine/contrib/builder/deb/aarch64/generate.sh @@ -69,7 +69,7 @@ for version in "${versions[@]}"; do # golang-1.6-go package can be used as bootstrap. packages+=( golang-1.6-go ) ;; - xenial) + stretch|xenial) packages+=( libsystemd-dev ) packages+=( golang-go libseccomp-dev) From 98b7605ab528b50962a8f34308449eb6ea105dc0 Mon Sep 17 00:00:00 2001 From: Boris Pruessmann Date: Sat, 4 Mar 2017 08:27:35 +0100 Subject: [PATCH 3/3] seccomp support for debian jessie Based on jessie-backports. Signed-off-by: Boris Pruessmann Upstream-commit: fcadb77b97b2a305ce83798f11e977d8925748c0 Component: engine --- .../deb/aarch64/debian-jessie/Dockerfile | 6 ++-- .../contrib/builder/deb/aarch64/generate.sh | 29 +++++++++++++------ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile b/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile index b86c9dffe1..e165da4978 100644 --- a/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile +++ b/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile @@ -5,7 +5,7 @@ FROM aarch64/debian:jessie RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list -RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev pkg-config vim-common libsystemd-journal-dev golang-1.6-go --no-install-recommends && rm -rf /var/lib/apt/lists/* +RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev pkg-config vim-common libsystemd-journal-dev golang-1.6-go libseccomp-dev --no-install-recommends && rm -rf /var/lib/apt/lists/* RUN update-alternatives --install /usr/bin/go go /usr/lib/go-1.6/bin/go 100 @@ -21,5 +21,5 @@ ENV PATH /usr/src/go/bin:$PATH ENV AUTO_GOPATH 1 -ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux -ENV RUNC_BUILDTAGS apparmor selinux +ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux seccomp +ENV RUNC_BUILDTAGS apparmor selinux seccomp diff --git a/components/engine/contrib/builder/deb/aarch64/generate.sh b/components/engine/contrib/builder/deb/aarch64/generate.sh index 0ef5a03506..647bf8fc28 100755 --- a/components/engine/contrib/builder/deb/aarch64/generate.sh +++ b/components/engine/contrib/builder/deb/aarch64/generate.sh @@ -61,7 +61,7 @@ for version in "${versions[@]}"; do ) case "$suite" in - jessie|trusty) + trusty) packages+=( libsystemd-journal-dev ) # aarch64 doesn't have an official downloadable binary for go. # And gccgo for trusty only includes Go 1.2 implementation which @@ -69,9 +69,20 @@ for version in "${versions[@]}"; do # golang-1.6-go package can be used as bootstrap. packages+=( golang-1.6-go ) ;; + jessie) + packages+=( libsystemd-journal-dev ) + # aarch64 doesn't have an official downloadable binary for go. + # And gccgo for jessie only includes Go 1.2 implementation which + # is too old to build current go source, fortunately jessie backports + # has golang-1.6-go package can be used as bootstrap. + packages+=( golang-1.6-go libseccomp-dev ) + + dockerBuildTags="$dockerBuildTags seccomp" + runcBuildTags="$runcBuildTags seccomp" + ;; stretch|xenial) packages+=( libsystemd-dev ) - packages+=( golang-go libseccomp-dev) + packages+=( golang-go libseccomp-dev ) dockerBuildTags="$dockerBuildTags seccomp" runcBuildTags="$runcBuildTags seccomp" @@ -83,13 +94,13 @@ for version in "${versions[@]}"; do ;; esac - case "$suite" in - jessie) - echo 'RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list' >> "$version/Dockerfile" - ;; - *) - ;; - esac + case "$suite" in + jessie) + echo 'RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list' >> "$version/Dockerfile" + ;; + *) + ;; + esac # update and install packages echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"