Browse code

Merge pull request #31193 from docbobo/master-aarch64

Support for debian-jessie on aarch64

Justin Cormack authored on 2017/03/14 09:45:30
Showing 5 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,25 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"!
2
+#
3
+
4
+FROM aarch64/debian:jessie
5
+
6
+RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list
7
+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/*
8
+
9
+RUN update-alternatives --install /usr/bin/go go /usr/lib/go-1.6/bin/go 100
10
+
11
+# Install Go
12
+# aarch64 doesn't have official go binaries, so use the version of go installed from
13
+# the image to build go from source.
14
+ENV GO_VERSION 1.7.5
15
+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 \
16
+	&& cd /usr/src/go/src \
17
+	&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash
18
+
19
+ENV PATH /usr/src/go/bin:$PATH
20
+
21
+ENV AUTO_GOPATH 1
22
+
23
+ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux seccomp
24
+ENV RUNC_BUILDTAGS apparmor selinux seccomp
0 25
new file mode 100644
... ...
@@ -0,0 +1,22 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"!
2
+#
3
+
4
+FROM aarch64/debian:stretch
5
+
6
+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/*
7
+
8
+# Install Go
9
+# aarch64 doesn't have official go binaries, so use the version of go installed from
10
+# the image to build go from source.
11
+ENV GO_VERSION 1.7.5
12
+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 \
13
+	&& cd /usr/src/go/src \
14
+	&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash
15
+
16
+ENV PATH /usr/src/go/bin:$PATH
17
+
18
+ENV AUTO_GOPATH 1
19
+
20
+ENV DOCKER_BUILDTAGS apparmor pkcs11 selinux seccomp
21
+ENV RUNC_BUILDTAGS apparmor selinux seccomp
... ...
@@ -69,9 +69,20 @@ for version in "${versions[@]}"; do
69 69
 			# golang-1.6-go package can be used as bootstrap.
70 70
 			packages+=( golang-1.6-go )
71 71
 			;;
72
-		xenial)
72
+		jessie)
73
+			packages+=( libsystemd-journal-dev )
74
+			# aarch64 doesn't have an official downloadable binary for go.
75
+			# And gccgo for jessie only includes Go 1.2 implementation which
76
+			# is too old to build current go source, fortunately jessie backports
77
+			# has golang-1.6-go package can be used as bootstrap.
78
+			packages+=( golang-1.6-go libseccomp-dev )
79
+
80
+			dockerBuildTags="$dockerBuildTags seccomp"
81
+			runcBuildTags="$runcBuildTags seccomp"
82
+			;;
83
+		stretch|xenial)
73 84
 			packages+=( libsystemd-dev )
74
-			packages+=( golang-go libseccomp-dev)
85
+			packages+=( golang-go libseccomp-dev )
75 86
 
76 87
 			dockerBuildTags="$dockerBuildTags seccomp"
77 88
 			runcBuildTags="$runcBuildTags seccomp"
... ...
@@ -83,12 +94,20 @@ for version in "${versions[@]}"; do
83 83
 			;;
84 84
 	esac
85 85
 
86
+	case "$suite" in
87
+		jessie)
88
+			echo 'RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list' >> "$version/Dockerfile"
89
+			;;
90
+		*)
91
+			;;
92
+	esac
93
+
86 94
 	# update and install packages
87 95
 	echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
88 96
 	echo >> "$version/Dockerfile"
89 97
 
90 98
 	case "$suite" in
91
-		trusty)
99
+		jessie|trusty)
92 100
 			echo 'RUN update-alternatives --install /usr/bin/go go /usr/lib/go-1.6/bin/go 100' >> "$version/Dockerfile"
93 101
 			echo >> "$version/Dockerfile"
94 102
 			;;
... ...
@@ -106,7 +125,7 @@ for version in "${versions[@]}"; do
106 106
 	echo '	&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash' >> "$version/Dockerfile"
107 107
 	echo >> "$version/Dockerfile"
108 108
 
109
-	echo 'ENV PATH $PATH:/usr/src/go/bin' >> "$version/Dockerfile"
109
+	echo 'ENV PATH /usr/src/go/bin:$PATH' >> "$version/Dockerfile"
110 110
 	echo >> "$version/Dockerfile"
111 111
 
112 112
 	echo "ENV AUTO_GOPATH 1" >> "$version/Dockerfile"
... ...
@@ -16,7 +16,7 @@ RUN mkdir /usr/src/go && curl -fsSL https://golang.org/dl/go${GO_VERSION}.src.ta
16 16
 	&& cd /usr/src/go/src \
17 17
 	&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash
18 18
 
19
-ENV PATH $PATH:/usr/src/go/bin
19
+ENV PATH /usr/src/go/bin:$PATH
20 20
 
21 21
 ENV AUTO_GOPATH 1
22 22
 
... ...
@@ -14,7 +14,7 @@ RUN mkdir /usr/src/go && curl -fsSL https://golang.org/dl/go${GO_VERSION}.src.ta
14 14
 	&& cd /usr/src/go/src \
15 15
 	&& GOOS=linux GOARCH=arm64 GOROOT_BOOTSTRAP="$(go env GOROOT)" ./make.bash
16 16
 
17
-ENV PATH $PATH:/usr/src/go/bin
17
+ENV PATH /usr/src/go/bin:$PATH
18 18
 
19 19
 ENV AUTO_GOPATH 1
20 20