Browse code

add support for building first ARM debian package

Signed-off-by: Govinda Fichtner <govinda.fichtner@googlemail.com>

Govinda Fichtner authored on 2015/11/24 04:00:43
Showing 46 changed files
1 1
deleted file mode 100644
... ...
@@ -1,5 +0,0 @@
1
-# `dockercore/builder-deb`
2
-
3
-This image's tags contain the dependencies for building Docker `.deb`s for each of the Debian-based platforms Docker targets.
4
-
5
-To add new tags, see [`contrib/builder/deb` in https://github.com/docker/docker](https://github.com/docker/docker/tree/master/contrib/builder/deb), specifically the `generate.sh` script, whose usage is described in a comment at the top of the file.
6 1
new file mode 100644
... ...
@@ -0,0 +1,5 @@
0
+# `dockercore/builder-deb`
1
+
2
+This image's tags contain the dependencies for building Docker `.deb`s for each of the Debian-based platforms Docker targets.
3
+
4
+To add new tags, see [`contrib/builder/deb/amd64` in https://github.com/docker/docker](https://github.com/docker/docker/tree/master/contrib/builder/deb/amd64), specifically the `generate.sh` script, whose usage is described in a comment at the top of the file.
0 5
new file mode 100755
... ...
@@ -0,0 +1,10 @@
0
+#!/bin/bash
1
+set -e
2
+
3
+cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
4
+
5
+set -x
6
+./generate.sh
7
+for d in */; do
8
+	docker build -t "dockercore/builder-deb:$(basename "$d")" "$d"
9
+done
0 10
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
2
+#
3
+
4
+FROM debian:jessie
5
+
6
+RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev  libsqlite3-dev pkg-config libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
7
+
8
+ENV GO_VERSION 1.5.3
9
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
10
+ENV PATH $PATH:/usr/local/go/bin
11
+
12
+ENV AUTO_GOPATH 1
13
+
14
+ENV DOCKER_BUILDTAGS apparmor selinux
0 15
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
2
+#
3
+
4
+FROM debian:stretch
5
+
6
+RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev libseccomp-dev libsqlite3-dev pkg-config libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
7
+
8
+ENV GO_VERSION 1.5.3
9
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
10
+ENV PATH $PATH:/usr/local/go/bin
11
+
12
+ENV AUTO_GOPATH 1
13
+
14
+ENV DOCKER_BUILDTAGS apparmor seccomp selinux
0 15
new file mode 100644
... ...
@@ -0,0 +1,16 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
2
+#
3
+
4
+FROM debian:wheezy-backports
5
+
6
+RUN apt-get update && apt-get install -y -t wheezy-backports btrfs-tools libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
7
+RUN apt-get update && apt-get install -y apparmor bash-completion  build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev  libsqlite3-dev pkg-config  --no-install-recommends && rm -rf /var/lib/apt/lists/*
8
+
9
+ENV GO_VERSION 1.5.3
10
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11
+ENV PATH $PATH:/usr/local/go/bin
12
+
13
+ENV AUTO_GOPATH 1
14
+
15
+ENV DOCKER_BUILDTAGS apparmor selinux
0 16
new file mode 100755
... ...
@@ -0,0 +1,127 @@
0
+#!/bin/bash
1
+set -e
2
+
3
+# usage: ./generate.sh [versions]
4
+#    ie: ./generate.sh
5
+#        to update all Dockerfiles in this directory
6
+#    or: ./generate.sh debian-jessie
7
+#        to only update debian-jessie/Dockerfile
8
+#    or: ./generate.sh debian-newversion
9
+#        to create a new folder and a Dockerfile within it
10
+
11
+cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
12
+
13
+versions=( "$@" )
14
+if [ ${#versions[@]} -eq 0 ]; then
15
+	versions=( */ )
16
+fi
17
+versions=( "${versions[@]%/}" )
18
+
19
+for version in "${versions[@]}"; do
20
+	distro="${version%-*}"
21
+	suite="${version##*-}"
22
+	from="${distro}:${suite}"
23
+
24
+	case "$from" in
25
+		debian:wheezy)
26
+			# add -backports, like our users have to
27
+			from+='-backports'
28
+			;;
29
+	esac
30
+
31
+	mkdir -p "$version"
32
+	echo "$version -> FROM $from"
33
+	cat > "$version/Dockerfile" <<-EOF
34
+		#
35
+		# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
36
+		#
37
+
38
+		FROM $from
39
+	EOF
40
+
41
+	echo >> "$version/Dockerfile"
42
+
43
+	extraBuildTags=
44
+
45
+	# this list is sorted alphabetically; please keep it that way
46
+	packages=(
47
+		apparmor # for apparmor_parser for testing the profile
48
+		bash-completion # for bash-completion debhelper integration
49
+		btrfs-tools # for "btrfs/ioctl.h" (and "version.h" if possible)
50
+		build-essential # "essential for building Debian packages"
51
+		curl ca-certificates # for downloading Go
52
+		debhelper # for easy ".deb" building
53
+		dh-apparmor # for apparmor debhelper
54
+		dh-systemd # for systemd debhelper integration
55
+		git # for "git commit" info in "docker -v"
56
+		libapparmor-dev # for "sys/apparmor.h"
57
+		libdevmapper-dev # for "libdevmapper.h"
58
+		libltdl-dev # for pkcs11 "ltdl.h"
59
+		libseccomp-dev  # for "seccomp.h" & "libseccomp.so"
60
+		libsqlite3-dev # for "sqlite3.h"
61
+		pkg-config # for detecting things like libsystemd-journal dynamically
62
+	)
63
+	# packaging for "sd-journal.h" and libraries varies
64
+	case "$suite" in
65
+		precise) ;;
66
+		sid|stretch|wily) packages+=( libsystemd-dev );;
67
+		*) packages+=( libsystemd-journal-dev );;
68
+	esac
69
+
70
+	# debian wheezy & ubuntu precise do not have the right libseccomp libs
71
+	# debian jessie & ubuntu trusty have a libseccomp < 2.2.1 :(
72
+	case "$suite" in
73
+		precise|wheezy|jessie|trusty)
74
+			packages=( "${packages[@]/libseccomp-dev}" )
75
+			;;
76
+		*)
77
+			extraBuildTags+=' seccomp'
78
+			;;
79
+	esac
80
+
81
+
82
+	if [ "$suite" = 'precise' ]; then
83
+		# precise has a few package issues
84
+
85
+		# - dh-systemd doesn't exist at all
86
+		packages=( "${packages[@]/dh-systemd}" )
87
+
88
+		# - libdevmapper-dev is missing critical structs (too old)
89
+		packages=( "${packages[@]/libdevmapper-dev}" )
90
+		extraBuildTags+=' exclude_graphdriver_devicemapper'
91
+
92
+		# - btrfs-tools is missing "ioctl.h" (too old), so it's useless
93
+		#   (since kernels on precise are old too, just skip btrfs entirely)
94
+		packages=( "${packages[@]/btrfs-tools}" )
95
+		extraBuildTags+=' exclude_graphdriver_btrfs'
96
+	fi
97
+
98
+	if [ "$suite" = 'wheezy' ]; then
99
+		# pull a couple packages from backports explicitly
100
+		# (build failures otherwise)
101
+		backportsPackages=( btrfs-tools libsystemd-journal-dev )
102
+		for pkg in "${backportsPackages[@]}"; do
103
+			packages=( "${packages[@]/$pkg}" )
104
+		done
105
+		echo "RUN apt-get update && apt-get install -y -t $suite-backports ${backportsPackages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
106
+	fi
107
+
108
+	echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
109
+
110
+	echo >> "$version/Dockerfile"
111
+
112
+	awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile >> "$version/Dockerfile"
113
+	echo 'RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
114
+	echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
115
+
116
+	echo >> "$version/Dockerfile"
117
+
118
+	echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
119
+
120
+	echo >> "$version/Dockerfile"
121
+
122
+	# print build tags in alphabetical order
123
+	buildTags=$( echo "apparmor selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
124
+
125
+	echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
126
+done
0 127
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
2
+#
3
+
4
+FROM ubuntu:precise
5
+
6
+RUN apt-get update && apt-get install -y apparmor bash-completion  build-essential curl ca-certificates debhelper dh-apparmor  git libapparmor-dev  libltdl-dev  libsqlite3-dev pkg-config --no-install-recommends && rm -rf /var/lib/apt/lists/*
7
+
8
+ENV GO_VERSION 1.5.3
9
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
10
+ENV PATH $PATH:/usr/local/go/bin
11
+
12
+ENV AUTO_GOPATH 1
13
+
14
+ENV DOCKER_BUILDTAGS apparmor exclude_graphdriver_btrfs exclude_graphdriver_devicemapper selinux
0 15
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
2
+#
3
+
4
+FROM ubuntu:trusty
5
+
6
+RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev  libsqlite3-dev pkg-config libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
7
+
8
+ENV GO_VERSION 1.5.3
9
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
10
+ENV PATH $PATH:/usr/local/go/bin
11
+
12
+ENV AUTO_GOPATH 1
13
+
14
+ENV DOCKER_BUILDTAGS apparmor selinux
0 15
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
2
+#
3
+
4
+FROM ubuntu:wily
5
+
6
+RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev libseccomp-dev libsqlite3-dev pkg-config libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
7
+
8
+ENV GO_VERSION 1.5.3
9
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
10
+ENV PATH $PATH:/usr/local/go/bin
11
+
12
+ENV AUTO_GOPATH 1
13
+
14
+ENV DOCKER_BUILDTAGS apparmor seccomp selinux
0 15
new file mode 100644
... ...
@@ -0,0 +1,10 @@
0
+FROM armhf/debian:jessie
1
+
2
+RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev libsqlite3-dev libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
3
+
4
+ENV GO_VERSION 1.4.3
5
+RUN curl -fSL "https://github.com/hypriot/golang-armbuilds/releases/download/v${GO_VERSION}/go${GO_VERSION}.linux-armv7.tar.gz" | tar xzC /usr/local
6
+ENV PATH $PATH:/usr/local/go/bin
7
+
8
+ENV AUTO_GOPATH 1
9
+ENV DOCKER_BUILDTAGS apparmor selinux
0 10
deleted file mode 100755
... ...
@@ -1,10 +0,0 @@
1
-#!/bin/bash
2
-set -e
3
-
4
-cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
5
-
6
-set -x
7
-./generate.sh
8
-for d in */; do
9
-	docker build -t "dockercore/builder-deb:$(basename "$d")" "$d"
10
-done
11 1
deleted file mode 100644
... ...
@@ -1,15 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/generate.sh"!
3
-#
4
-
5
-FROM debian:jessie
6
-
7
-RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev  libsqlite3-dev pkg-config libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8
-
9
-ENV GO_VERSION 1.5.3
10
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11
-ENV PATH $PATH:/usr/local/go/bin
12
-
13
-ENV AUTO_GOPATH 1
14
-
15
-ENV DOCKER_BUILDTAGS apparmor selinux
16 1
deleted file mode 100644
... ...
@@ -1,15 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/generate.sh"!
3
-#
4
-
5
-FROM debian:stretch
6
-
7
-RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev libseccomp-dev libsqlite3-dev pkg-config libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8
-
9
-ENV GO_VERSION 1.5.3
10
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11
-ENV PATH $PATH:/usr/local/go/bin
12
-
13
-ENV AUTO_GOPATH 1
14
-
15
-ENV DOCKER_BUILDTAGS apparmor seccomp selinux
16 1
deleted file mode 100644
... ...
@@ -1,16 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/generate.sh"!
3
-#
4
-
5
-FROM debian:wheezy-backports
6
-
7
-RUN apt-get update && apt-get install -y -t wheezy-backports btrfs-tools libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8
-RUN apt-get update && apt-get install -y apparmor bash-completion  build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev  libsqlite3-dev pkg-config  --no-install-recommends && rm -rf /var/lib/apt/lists/*
9
-
10
-ENV GO_VERSION 1.5.3
11
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12
-ENV PATH $PATH:/usr/local/go/bin
13
-
14
-ENV AUTO_GOPATH 1
15
-
16
-ENV DOCKER_BUILDTAGS apparmor selinux
17 1
deleted file mode 100755
... ...
@@ -1,127 +0,0 @@
1
-#!/bin/bash
2
-set -e
3
-
4
-# usage: ./generate.sh [versions]
5
-#    ie: ./generate.sh
6
-#        to update all Dockerfiles in this directory
7
-#    or: ./generate.sh debian-jessie
8
-#        to only update debian-jessie/Dockerfile
9
-#    or: ./generate.sh debian-newversion
10
-#        to create a new folder and a Dockerfile within it
11
-
12
-cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
13
-
14
-versions=( "$@" )
15
-if [ ${#versions[@]} -eq 0 ]; then
16
-	versions=( */ )
17
-fi
18
-versions=( "${versions[@]%/}" )
19
-
20
-for version in "${versions[@]}"; do
21
-	distro="${version%-*}"
22
-	suite="${version##*-}"
23
-	from="${distro}:${suite}"
24
-
25
-	case "$from" in
26
-		debian:wheezy)
27
-			# add -backports, like our users have to
28
-			from+='-backports'
29
-			;;
30
-	esac
31
-
32
-	mkdir -p "$version"
33
-	echo "$version -> FROM $from"
34
-	cat > "$version/Dockerfile" <<-EOF
35
-		#
36
-		# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/generate.sh"!
37
-		#
38
-
39
-		FROM $from
40
-	EOF
41
-
42
-	echo >> "$version/Dockerfile"
43
-
44
-	extraBuildTags=
45
-
46
-	# this list is sorted alphabetically; please keep it that way
47
-	packages=(
48
-		apparmor # for apparmor_parser for testing the profile
49
-		bash-completion # for bash-completion debhelper integration
50
-		btrfs-tools # for "btrfs/ioctl.h" (and "version.h" if possible)
51
-		build-essential # "essential for building Debian packages"
52
-		curl ca-certificates # for downloading Go
53
-		debhelper # for easy ".deb" building
54
-		dh-apparmor # for apparmor debhelper
55
-		dh-systemd # for systemd debhelper integration
56
-		git # for "git commit" info in "docker -v"
57
-		libapparmor-dev # for "sys/apparmor.h"
58
-		libdevmapper-dev # for "libdevmapper.h"
59
-		libltdl-dev # for pkcs11 "ltdl.h"
60
-		libseccomp-dev  # for "seccomp.h" & "libseccomp.so"
61
-		libsqlite3-dev # for "sqlite3.h"
62
-		pkg-config # for detecting things like libsystemd-journal dynamically
63
-	)
64
-	# packaging for "sd-journal.h" and libraries varies
65
-	case "$suite" in
66
-		precise) ;;
67
-		sid|stretch|wily) packages+=( libsystemd-dev );;
68
-		*) packages+=( libsystemd-journal-dev );;
69
-	esac
70
-
71
-	# debian wheezy & ubuntu precise do not have the right libseccomp libs
72
-	# debian jessie & ubuntu trusty have a libseccomp < 2.2.1 :(
73
-	case "$suite" in
74
-		precise|wheezy|jessie|trusty)
75
-			packages=( "${packages[@]/libseccomp-dev}" )
76
-			;;
77
-		*)
78
-			extraBuildTags+=' seccomp'
79
-			;;
80
-	esac
81
-
82
-
83
-	if [ "$suite" = 'precise' ]; then
84
-		# precise has a few package issues
85
-
86
-		# - dh-systemd doesn't exist at all
87
-		packages=( "${packages[@]/dh-systemd}" )
88
-
89
-		# - libdevmapper-dev is missing critical structs (too old)
90
-		packages=( "${packages[@]/libdevmapper-dev}" )
91
-		extraBuildTags+=' exclude_graphdriver_devicemapper'
92
-
93
-		# - btrfs-tools is missing "ioctl.h" (too old), so it's useless
94
-		#   (since kernels on precise are old too, just skip btrfs entirely)
95
-		packages=( "${packages[@]/btrfs-tools}" )
96
-		extraBuildTags+=' exclude_graphdriver_btrfs'
97
-	fi
98
-
99
-	if [ "$suite" = 'wheezy' ]; then
100
-		# pull a couple packages from backports explicitly
101
-		# (build failures otherwise)
102
-		backportsPackages=( btrfs-tools libsystemd-journal-dev )
103
-		for pkg in "${backportsPackages[@]}"; do
104
-			packages=( "${packages[@]/$pkg}" )
105
-		done
106
-		echo "RUN apt-get update && apt-get install -y -t $suite-backports ${backportsPackages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
107
-	fi
108
-
109
-	echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
110
-
111
-	echo >> "$version/Dockerfile"
112
-
113
-	awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../Dockerfile >> "$version/Dockerfile"
114
-	echo 'RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
115
-	echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
116
-
117
-	echo >> "$version/Dockerfile"
118
-
119
-	echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
120
-
121
-	echo >> "$version/Dockerfile"
122
-
123
-	# print build tags in alphabetical order
124
-	buildTags=$( echo "apparmor selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
125
-
126
-	echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
127
-done
128 1
deleted file mode 100644
... ...
@@ -1,15 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/generate.sh"!
3
-#
4
-
5
-FROM ubuntu:precise
6
-
7
-RUN apt-get update && apt-get install -y apparmor bash-completion  build-essential curl ca-certificates debhelper dh-apparmor  git libapparmor-dev  libltdl-dev  libsqlite3-dev pkg-config --no-install-recommends && rm -rf /var/lib/apt/lists/*
8
-
9
-ENV GO_VERSION 1.5.3
10
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11
-ENV PATH $PATH:/usr/local/go/bin
12
-
13
-ENV AUTO_GOPATH 1
14
-
15
-ENV DOCKER_BUILDTAGS apparmor exclude_graphdriver_btrfs exclude_graphdriver_devicemapper selinux
16 1
deleted file mode 100644
... ...
@@ -1,15 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/generate.sh"!
3
-#
4
-
5
-FROM ubuntu:trusty
6
-
7
-RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev  libsqlite3-dev pkg-config libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8
-
9
-ENV GO_VERSION 1.5.3
10
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11
-ENV PATH $PATH:/usr/local/go/bin
12
-
13
-ENV AUTO_GOPATH 1
14
-
15
-ENV DOCKER_BUILDTAGS apparmor selinux
16 1
deleted file mode 100644
... ...
@@ -1,15 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/generate.sh"!
3
-#
4
-
5
-FROM ubuntu:wily
6
-
7
-RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libltdl-dev libseccomp-dev libsqlite3-dev pkg-config libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8
-
9
-ENV GO_VERSION 1.5.3
10
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11
-ENV PATH $PATH:/usr/local/go/bin
12
-
13
-ENV AUTO_GOPATH 1
14
-
15
-ENV DOCKER_BUILDTAGS apparmor seccomp selinux
16 1
deleted file mode 100644
... ...
@@ -1,5 +0,0 @@
1
-# `dockercore/builder-rpm`
2
-
3
-This image's tags contain the dependencies for building Docker `.rpm`s for each of the RPM-based platforms Docker targets.
4
-
5
-To add new tags, see [`contrib/builder/rpm` in https://github.com/docker/docker](https://github.com/docker/docker/tree/master/contrib/builder/rpm), specifically the `generate.sh` script, whose usage is described in a comment at the top of the file.
6 1
new file mode 100644
... ...
@@ -0,0 +1,5 @@
0
+# `dockercore/builder-rpm`
1
+
2
+This image's tags contain the dependencies for building Docker `.rpm`s for each of the RPM-based platforms Docker targets.
3
+
4
+To add new tags, see [`contrib/builder/rpm/amd64` in https://github.com/docker/docker](https://github.com/docker/docker/tree/master/contrib/builder/rpm/amd64), specifically the `generate.sh` script, whose usage is described in a comment at the top of the file.
0 5
new file mode 100755
... ...
@@ -0,0 +1,10 @@
0
+#!/bin/bash
1
+set -e
2
+
3
+cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
4
+
5
+set -x
6
+./generate.sh
7
+for d in */; do
8
+	docker build -t "dockercore/builder-rpm:$(basename "$d")" "$d"
9
+done
0 10
new file mode 100644
... ...
@@ -0,0 +1,18 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
2
+#
3
+
4
+FROM centos:7
5
+
6
+RUN yum groupinstall -y "Development Tools"
7
+RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs
8
+RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
9
+
10
+ENV GO_VERSION 1.5.3
11
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12
+ENV PATH $PATH:/usr/local/go/bin
13
+
14
+ENV AUTO_GOPATH 1
15
+
16
+ENV DOCKER_BUILDTAGS selinux
17
+
0 18
new file mode 100644
... ...
@@ -0,0 +1,38 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
2
+#
3
+
4
+FROM fedora:22
5
+
6
+RUN dnf install -y @development-tools fedora-packager
7
+RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
8
+
9
+ENV SECCOMP_VERSION 2.2.3
10
+RUN buildDeps=' \
11
+automake \
12
+libtool \
13
+' \
14
+&& set -x \
15
+&& yum install -y $buildDeps \
16
+&& export SECCOMP_PATH=$(mktemp -d) \
17
+&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
18
+| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
19
+&& ( \
20
+cd "$SECCOMP_PATH" \
21
+&& ./configure --prefix=/usr \
22
+&& make \
23
+&& install -c src/.libs/libseccomp.a /usr/lib/libseccomp.a \
24
+&& chmod 644 /usr/lib/libseccomp.a \
25
+&& ranlib /usr/lib/libseccomp.a \
26
+&& ldconfig -n /usr/lib \
27
+) \
28
+&& rm -rf "$SECCOMP_PATH"
29
+
30
+ENV GO_VERSION 1.5.3
31
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
32
+ENV PATH $PATH:/usr/local/go/bin
33
+
34
+ENV AUTO_GOPATH 1
35
+
36
+ENV DOCKER_BUILDTAGS seccomp selinux
37
+
0 38
new file mode 100644
... ...
@@ -0,0 +1,38 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
2
+#
3
+
4
+FROM fedora:23
5
+
6
+RUN dnf install -y @development-tools fedora-packager
7
+RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
8
+
9
+ENV SECCOMP_VERSION 2.2.3
10
+RUN buildDeps=' \
11
+automake \
12
+libtool \
13
+' \
14
+&& set -x \
15
+&& yum install -y $buildDeps \
16
+&& export SECCOMP_PATH=$(mktemp -d) \
17
+&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
18
+| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
19
+&& ( \
20
+cd "$SECCOMP_PATH" \
21
+&& ./configure --prefix=/usr \
22
+&& make \
23
+&& install -c src/.libs/libseccomp.a /usr/lib/libseccomp.a \
24
+&& chmod 644 /usr/lib/libseccomp.a \
25
+&& ranlib /usr/lib/libseccomp.a \
26
+&& ldconfig -n /usr/lib \
27
+) \
28
+&& rm -rf "$SECCOMP_PATH"
29
+
30
+ENV GO_VERSION 1.5.3
31
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
32
+ENV PATH $PATH:/usr/local/go/bin
33
+
34
+ENV AUTO_GOPATH 1
35
+
36
+ENV DOCKER_BUILDTAGS seccomp selinux
37
+
0 38
new file mode 100755
... ...
@@ -0,0 +1,196 @@
0
+#!/bin/bash
1
+set -e
2
+
3
+# usage: ./generate.sh [versions]
4
+#    ie: ./generate.sh
5
+#        to update all Dockerfiles in this directory
6
+#    or: ./generate.sh
7
+#        to only update fedora-23/Dockerfile
8
+#    or: ./generate.sh fedora-newversion
9
+#        to create a new folder and a Dockerfile within it
10
+
11
+cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
12
+
13
+versions=( "$@" )
14
+if [ ${#versions[@]} -eq 0 ]; then
15
+	versions=( */ )
16
+fi
17
+versions=( "${versions[@]%/}" )
18
+
19
+for version in "${versions[@]}"; do
20
+	distro="${version%-*}"
21
+	suite="${version##*-}"
22
+	from="${distro}:${suite}"
23
+	installer=yum
24
+	if [[ "$distro" == "fedora" ]]; then
25
+		installer=dnf
26
+	fi
27
+
28
+	mkdir -p "$version"
29
+	echo "$version -> FROM $from"
30
+	cat > "$version/Dockerfile" <<-EOF
31
+		#
32
+		# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
33
+		#
34
+
35
+		FROM $from
36
+	EOF
37
+
38
+	echo >> "$version/Dockerfile"
39
+
40
+	extraBuildTags=
41
+
42
+	case "$from" in
43
+		centos:*)
44
+			# get "Development Tools" packages dependencies
45
+			echo 'RUN yum groupinstall -y "Development Tools"' >> "$version/Dockerfile"
46
+
47
+			if [[ "$version" == "centos-7" ]]; then
48
+				echo 'RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs' >> "$version/Dockerfile"
49
+			fi
50
+			;;
51
+		oraclelinux:*)
52
+			# get "Development Tools" packages and dependencies
53
+			# we also need yum-utils for yum-config-manager to pull the latest repo file
54
+			echo 'RUN yum groupinstall -y "Development Tools"' >> "$version/Dockerfile"
55
+			;;
56
+		opensuse:*)
57
+			# get rpm-build and curl packages and dependencies
58
+			echo 'RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build' >> "$version/Dockerfile"
59
+			;;
60
+		*)
61
+			echo "RUN ${installer} install -y @development-tools fedora-packager" >> "$version/Dockerfile"
62
+			;;
63
+	esac
64
+
65
+	# this list is sorted alphabetically; please keep it that way
66
+	packages=(
67
+		btrfs-progs-devel # for "btrfs/ioctl.h" (and "version.h" if possible)
68
+		device-mapper-devel # for "libdevmapper.h"
69
+		glibc-static
70
+		libseccomp-devel # for "seccomp.h" & "libseccomp.so"
71
+		libselinux-devel # for "libselinux.so"
72
+		libtool-ltdl-devel # for pkcs11 "ltdl.h"
73
+		pkgconfig # for the pkg-config command
74
+		selinux-policy
75
+		selinux-policy-devel
76
+		sqlite-devel # for "sqlite3.h"
77
+		systemd-devel # for "sd-journal.h" and libraries
78
+		tar # older versions of dev-tools do not have tar
79
+	)
80
+
81
+	case "$from" in
82
+		oraclelinux:7)
83
+			# Enable the optional repository
84
+			packages=( --enablerepo=ol7_optional_latest "${packages[*]}" )
85
+			;;
86
+	esac
87
+
88
+	case "$from" in
89
+		oraclelinux:6)
90
+			# doesn't use systemd, doesn't have a devel package for it
91
+			packages=( "${packages[@]/systemd-devel}" )
92
+			;;
93
+	esac
94
+
95
+	# opensuse & oraclelinx:6 do not have the right libseccomp libs
96
+	# centos:7 and oraclelinux:7 have a libseccomp < 2.2.1 :(
97
+	case "$from" in
98
+		opensuse:*|oraclelinux:*|centos:7)
99
+			packages=( "${packages[@]/libseccomp-devel}" )
100
+			;;
101
+		*)
102
+			extraBuildTags+=' seccomp'
103
+			;;
104
+	esac
105
+
106
+	case "$from" in
107
+		opensuse:*)
108
+			packages=( "${packages[@]/btrfs-progs-devel/libbtrfs-devel}" )
109
+			packages=( "${packages[@]/pkgconfig/pkg-config}" )
110
+			# use zypper
111
+			echo "RUN zypper --non-interactive install ${packages[*]}" >> "$version/Dockerfile"
112
+			;;
113
+		*)
114
+			echo "RUN ${installer} install -y ${packages[*]}" >> "$version/Dockerfile"
115
+			;;
116
+	esac
117
+
118
+	echo >> "$version/Dockerfile"
119
+
120
+	# TODO remove this since dockerinit is finally gone
121
+	case "$from" in
122
+		fedora:*)
123
+			awk '$1 == "ENV" && $2 == "SECCOMP_VERSION" { print; exit }' ../../../Dockerfile >> "$version/Dockerfile"
124
+			cat <<-'EOF' >> "$version/Dockerfile"
125
+			RUN buildDeps=' \
126
+				automake \
127
+				libtool \
128
+			' \
129
+			&& set -x \
130
+			&& yum install -y $buildDeps \
131
+			&& export SECCOMP_PATH=$(mktemp -d) \
132
+			&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
133
+			| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
134
+			&& ( \
135
+				cd "$SECCOMP_PATH" \
136
+				&& ./configure --prefix=/usr \
137
+				&& make \
138
+				&& install -c src/.libs/libseccomp.a /usr/lib/libseccomp.a \
139
+				&& chmod 644 /usr/lib/libseccomp.a \
140
+				&& ranlib /usr/lib/libseccomp.a \
141
+				&& ldconfig -n /usr/lib \
142
+			) \
143
+			&& rm -rf "$SECCOMP_PATH"
144
+			EOF
145
+
146
+			echo >> "$version/Dockerfile"
147
+			;;
148
+		*) ;;
149
+	esac
150
+
151
+	case "$from" in
152
+		oraclelinux:6)
153
+			# We need a known version of the kernel-uek-devel headers to set CGO_CPPFLAGS, so grab the UEKR4 GA version
154
+			# This requires using yum-config-manager from yum-utils to enable the UEKR4 yum repo
155
+			echo "RUN yum install -y yum-utils && curl -o /etc/yum.repos.d/public-yum-ol6.repo http://yum.oracle.com/public-yum-ol6.repo && yum-config-manager -q --enable ol6_UEKR4"  >> "$version/Dockerfile"
156
+			echo "RUN yum install -y kernel-uek-devel-4.1.12-32.el6uek"  >> "$version/Dockerfile"
157
+			echo >> "$version/Dockerfile"
158
+			;;
159
+		*) ;;
160
+	esac
161
+
162
+
163
+	awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile >> "$version/Dockerfile"
164
+	echo 'RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
165
+	echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
166
+
167
+	echo >> "$version/Dockerfile"
168
+
169
+	echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
170
+
171
+	echo >> "$version/Dockerfile"
172
+
173
+	# print build tags in alphabetical order
174
+	buildTags=$( echo "selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
175
+
176
+	echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
177
+	echo >> "$version/Dockerfile"
178
+
179
+	case "$from" in
180
+                oraclelinux:6)
181
+                        # We need to set the CGO_CPPFLAGS environment to use the updated UEKR4 headers with all the userns stuff.
182
+                        # The ordering is very important and should not be changed.
183
+                        echo 'ENV CGO_CPPFLAGS -D__EXPORTED_HEADERS__ \'  >> "$version/Dockerfile"
184
+                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/generated/uapi \'  >> "$version/Dockerfile"
185
+                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/uapi \'  >> "$version/Dockerfile"
186
+                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/generated/uapi \'  >> "$version/Dockerfile"
187
+                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/uapi \'  >> "$version/Dockerfile"
188
+                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include'  >> "$version/Dockerfile"
189
+                        echo >> "$version/Dockerfile"
190
+                        ;;
191
+                *) ;;
192
+        esac
193
+
194
+
195
+done
0 196
new file mode 100644
... ...
@@ -0,0 +1,17 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
2
+#
3
+
4
+FROM opensuse:13.2
5
+
6
+RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build
7
+RUN zypper --non-interactive install libbtrfs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel pkg-config selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
8
+
9
+ENV GO_VERSION 1.5.3
10
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11
+ENV PATH $PATH:/usr/local/go/bin
12
+
13
+ENV AUTO_GOPATH 1
14
+
15
+ENV DOCKER_BUILDTAGS selinux
16
+
0 17
new file mode 100644
... ...
@@ -0,0 +1,27 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/generate.sh"!
2
+#
3
+
4
+FROM oraclelinux:6
5
+
6
+RUN yum groupinstall -y "Development Tools"
7
+RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel  tar
8
+
9
+RUN yum install -y yum-utils && curl -o /etc/yum.repos.d/public-yum-ol6.repo http://yum.oracle.com/public-yum-ol6.repo && yum-config-manager -q --enable ol6_UEKR4
10
+RUN yum install -y kernel-uek-devel-4.1.12-32.el6uek
11
+
12
+ENV GO_VERSION 1.5.3
13
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
14
+ENV PATH $PATH:/usr/local/go/bin
15
+
16
+ENV AUTO_GOPATH 1
17
+
18
+ENV DOCKER_BUILDTAGS selinux
19
+
20
+ENV CGO_CPPFLAGS -D__EXPORTED_HEADERS__ \
21
+                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/generated/uapi \
22
+                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/uapi \
23
+                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/generated/uapi \
24
+                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/uapi \
25
+                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include
26
+
0 27
new file mode 100644
... ...
@@ -0,0 +1,17 @@
0
+#
1
+# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
2
+#
3
+
4
+FROM oraclelinux:7
5
+
6
+RUN yum groupinstall -y "Development Tools"
7
+RUN yum install -y --enablerepo=ol7_optional_latest btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
8
+
9
+ENV GO_VERSION 1.5.3
10
+RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11
+ENV PATH $PATH:/usr/local/go/bin
12
+
13
+ENV AUTO_GOPATH 1
14
+
15
+ENV DOCKER_BUILDTAGS selinux
16
+
0 17
deleted file mode 100755
... ...
@@ -1,10 +0,0 @@
1
-#!/bin/bash
2
-set -e
3
-
4
-cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
5
-
6
-set -x
7
-./generate.sh
8
-for d in */; do
9
-	docker build -t "dockercore/builder-rpm:$(basename "$d")" "$d"
10
-done
11 1
deleted file mode 100644
... ...
@@ -1,18 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/generate.sh"!
3
-#
4
-
5
-FROM centos:7
6
-
7
-RUN yum groupinstall -y "Development Tools"
8
-RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs
9
-RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
10
-
11
-ENV GO_VERSION 1.5.3
12
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
13
-ENV PATH $PATH:/usr/local/go/bin
14
-
15
-ENV AUTO_GOPATH 1
16
-
17
-ENV DOCKER_BUILDTAGS selinux
18
-
19 1
deleted file mode 100644
... ...
@@ -1,38 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/generate.sh"!
3
-#
4
-
5
-FROM fedora:22
6
-
7
-RUN dnf install -y @development-tools fedora-packager
8
-RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
9
-
10
-ENV SECCOMP_VERSION 2.2.3
11
-RUN buildDeps=' \
12
-automake \
13
-libtool \
14
-' \
15
-&& set -x \
16
-&& yum install -y $buildDeps \
17
-&& export SECCOMP_PATH=$(mktemp -d) \
18
-&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
19
-| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
20
-&& ( \
21
-cd "$SECCOMP_PATH" \
22
-&& ./configure --prefix=/usr \
23
-&& make \
24
-&& install -c src/.libs/libseccomp.a /usr/lib/libseccomp.a \
25
-&& chmod 644 /usr/lib/libseccomp.a \
26
-&& ranlib /usr/lib/libseccomp.a \
27
-&& ldconfig -n /usr/lib \
28
-) \
29
-&& rm -rf "$SECCOMP_PATH"
30
-
31
-ENV GO_VERSION 1.5.3
32
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
33
-ENV PATH $PATH:/usr/local/go/bin
34
-
35
-ENV AUTO_GOPATH 1
36
-
37
-ENV DOCKER_BUILDTAGS seccomp selinux
38
-
39 1
deleted file mode 100644
... ...
@@ -1,38 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/generate.sh"!
3
-#
4
-
5
-FROM fedora:23
6
-
7
-RUN dnf install -y @development-tools fedora-packager
8
-RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
9
-
10
-ENV SECCOMP_VERSION 2.2.3
11
-RUN buildDeps=' \
12
-automake \
13
-libtool \
14
-' \
15
-&& set -x \
16
-&& yum install -y $buildDeps \
17
-&& export SECCOMP_PATH=$(mktemp -d) \
18
-&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
19
-| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
20
-&& ( \
21
-cd "$SECCOMP_PATH" \
22
-&& ./configure --prefix=/usr \
23
-&& make \
24
-&& install -c src/.libs/libseccomp.a /usr/lib/libseccomp.a \
25
-&& chmod 644 /usr/lib/libseccomp.a \
26
-&& ranlib /usr/lib/libseccomp.a \
27
-&& ldconfig -n /usr/lib \
28
-) \
29
-&& rm -rf "$SECCOMP_PATH"
30
-
31
-ENV GO_VERSION 1.5.3
32
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
33
-ENV PATH $PATH:/usr/local/go/bin
34
-
35
-ENV AUTO_GOPATH 1
36
-
37
-ENV DOCKER_BUILDTAGS seccomp selinux
38
-
39 1
deleted file mode 100755
... ...
@@ -1,196 +0,0 @@
1
-#!/bin/bash
2
-set -e
3
-
4
-# usage: ./generate.sh [versions]
5
-#    ie: ./generate.sh
6
-#        to update all Dockerfiles in this directory
7
-#    or: ./generate.sh
8
-#        to only update fedora-23/Dockerfile
9
-#    or: ./generate.sh fedora-newversion
10
-#        to create a new folder and a Dockerfile within it
11
-
12
-cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
13
-
14
-versions=( "$@" )
15
-if [ ${#versions[@]} -eq 0 ]; then
16
-	versions=( */ )
17
-fi
18
-versions=( "${versions[@]%/}" )
19
-
20
-for version in "${versions[@]}"; do
21
-	distro="${version%-*}"
22
-	suite="${version##*-}"
23
-	from="${distro}:${suite}"
24
-	installer=yum
25
-	if [[ "$distro" == "fedora" ]]; then
26
-		installer=dnf
27
-	fi
28
-
29
-	mkdir -p "$version"
30
-	echo "$version -> FROM $from"
31
-	cat > "$version/Dockerfile" <<-EOF
32
-		#
33
-		# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/generate.sh"!
34
-		#
35
-
36
-		FROM $from
37
-	EOF
38
-
39
-	echo >> "$version/Dockerfile"
40
-
41
-	extraBuildTags=
42
-
43
-	case "$from" in
44
-		centos:*)
45
-			# get "Development Tools" packages dependencies
46
-			echo 'RUN yum groupinstall -y "Development Tools"' >> "$version/Dockerfile"
47
-
48
-			if [[ "$version" == "centos-7" ]]; then
49
-				echo 'RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs' >> "$version/Dockerfile"
50
-			fi
51
-			;;
52
-		oraclelinux:*)
53
-			# get "Development Tools" packages and dependencies
54
-			# we also need yum-utils for yum-config-manager to pull the latest repo file
55
-			echo 'RUN yum groupinstall -y "Development Tools"' >> "$version/Dockerfile"
56
-			;;
57
-		opensuse:*)
58
-			# get rpm-build and curl packages and dependencies
59
-			echo 'RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build' >> "$version/Dockerfile"
60
-			;;
61
-		*)
62
-			echo "RUN ${installer} install -y @development-tools fedora-packager" >> "$version/Dockerfile"
63
-			;;
64
-	esac
65
-
66
-	# this list is sorted alphabetically; please keep it that way
67
-	packages=(
68
-		btrfs-progs-devel # for "btrfs/ioctl.h" (and "version.h" if possible)
69
-		device-mapper-devel # for "libdevmapper.h"
70
-		glibc-static
71
-		libseccomp-devel # for "seccomp.h" & "libseccomp.so"
72
-		libselinux-devel # for "libselinux.so"
73
-		libtool-ltdl-devel # for pkcs11 "ltdl.h"
74
-		pkgconfig # for the pkg-config command
75
-		selinux-policy
76
-		selinux-policy-devel
77
-		sqlite-devel # for "sqlite3.h"
78
-		systemd-devel # for "sd-journal.h" and libraries
79
-		tar # older versions of dev-tools do not have tar
80
-	)
81
-
82
-	case "$from" in
83
-		oraclelinux:7)
84
-			# Enable the optional repository
85
-			packages=( --enablerepo=ol7_optional_latest "${packages[*]}" )
86
-			;;
87
-	esac
88
-
89
-	case "$from" in
90
-		oraclelinux:6)
91
-			# doesn't use systemd, doesn't have a devel package for it
92
-			packages=( "${packages[@]/systemd-devel}" )
93
-			;;
94
-	esac
95
-
96
-	# opensuse & oraclelinx:6 do not have the right libseccomp libs
97
-	# centos:7 and oraclelinux:7 have a libseccomp < 2.2.1 :(
98
-	case "$from" in
99
-		opensuse:*|oraclelinux:*|centos:7)
100
-			packages=( "${packages[@]/libseccomp-devel}" )
101
-			;;
102
-		*)
103
-			extraBuildTags+=' seccomp'
104
-			;;
105
-	esac
106
-
107
-	case "$from" in
108
-		opensuse:*)
109
-			packages=( "${packages[@]/btrfs-progs-devel/libbtrfs-devel}" )
110
-			packages=( "${packages[@]/pkgconfig/pkg-config}" )
111
-			# use zypper
112
-			echo "RUN zypper --non-interactive install ${packages[*]}" >> "$version/Dockerfile"
113
-			;;
114
-		*)
115
-			echo "RUN ${installer} install -y ${packages[*]}" >> "$version/Dockerfile"
116
-			;;
117
-	esac
118
-
119
-	echo >> "$version/Dockerfile"
120
-
121
-	# TODO remove this since dockerinit is finally gone
122
-	case "$from" in
123
-		fedora:*)
124
-			awk '$1 == "ENV" && $2 == "SECCOMP_VERSION" { print; exit }' ../../../Dockerfile >> "$version/Dockerfile"
125
-			cat <<-'EOF' >> "$version/Dockerfile"
126
-			RUN buildDeps=' \
127
-				automake \
128
-				libtool \
129
-			' \
130
-			&& set -x \
131
-			&& yum install -y $buildDeps \
132
-			&& export SECCOMP_PATH=$(mktemp -d) \
133
-			&& curl -fsSL "https://github.com/seccomp/libseccomp/releases/download/v${SECCOMP_VERSION}/libseccomp-${SECCOMP_VERSION}.tar.gz" \
134
-			| tar -xzC "$SECCOMP_PATH" --strip-components=1 \
135
-			&& ( \
136
-				cd "$SECCOMP_PATH" \
137
-				&& ./configure --prefix=/usr \
138
-				&& make \
139
-				&& install -c src/.libs/libseccomp.a /usr/lib/libseccomp.a \
140
-				&& chmod 644 /usr/lib/libseccomp.a \
141
-				&& ranlib /usr/lib/libseccomp.a \
142
-				&& ldconfig -n /usr/lib \
143
-			) \
144
-			&& rm -rf "$SECCOMP_PATH"
145
-			EOF
146
-
147
-			echo >> "$version/Dockerfile"
148
-			;;
149
-		*) ;;
150
-	esac
151
-
152
-	case "$from" in
153
-		oraclelinux:6)
154
-			# We need a known version of the kernel-uek-devel headers to set CGO_CPPFLAGS, so grab the UEKR4 GA version
155
-			# This requires using yum-config-manager from yum-utils to enable the UEKR4 yum repo
156
-			echo "RUN yum install -y yum-utils && curl -o /etc/yum.repos.d/public-yum-ol6.repo http://yum.oracle.com/public-yum-ol6.repo && yum-config-manager -q --enable ol6_UEKR4"  >> "$version/Dockerfile"
157
-			echo "RUN yum install -y kernel-uek-devel-4.1.12-32.el6uek"  >> "$version/Dockerfile"
158
-			echo >> "$version/Dockerfile"
159
-			;;
160
-		*) ;;
161
-	esac
162
-
163
-
164
-	awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../Dockerfile >> "$version/Dockerfile"
165
-	echo 'RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
166
-	echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
167
-
168
-	echo >> "$version/Dockerfile"
169
-
170
-	echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
171
-
172
-	echo >> "$version/Dockerfile"
173
-
174
-	# print build tags in alphabetical order
175
-	buildTags=$( echo "selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
176
-
177
-	echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
178
-	echo >> "$version/Dockerfile"
179
-
180
-	case "$from" in
181
-                oraclelinux:6)
182
-                        # We need to set the CGO_CPPFLAGS environment to use the updated UEKR4 headers with all the userns stuff.
183
-                        # The ordering is very important and should not be changed.
184
-                        echo 'ENV CGO_CPPFLAGS -D__EXPORTED_HEADERS__ \'  >> "$version/Dockerfile"
185
-                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/generated/uapi \'  >> "$version/Dockerfile"
186
-                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/uapi \'  >> "$version/Dockerfile"
187
-                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/generated/uapi \'  >> "$version/Dockerfile"
188
-                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/uapi \'  >> "$version/Dockerfile"
189
-                        echo '                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include'  >> "$version/Dockerfile"
190
-                        echo >> "$version/Dockerfile"
191
-                        ;;
192
-                *) ;;
193
-        esac
194
-
195
-
196
-done
197 1
deleted file mode 100644
... ...
@@ -1,17 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/generate.sh"!
3
-#
4
-
5
-FROM opensuse:13.2
6
-
7
-RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build
8
-RUN zypper --non-interactive install libbtrfs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel pkg-config selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
9
-
10
-ENV GO_VERSION 1.5.3
11
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12
-ENV PATH $PATH:/usr/local/go/bin
13
-
14
-ENV AUTO_GOPATH 1
15
-
16
-ENV DOCKER_BUILDTAGS selinux
17
-
18 1
deleted file mode 100644
... ...
@@ -1,27 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/generate.sh"!
3
-#
4
-
5
-FROM oraclelinux:6
6
-
7
-RUN yum groupinstall -y "Development Tools"
8
-RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel  tar
9
-
10
-RUN yum install -y yum-utils && curl -o /etc/yum.repos.d/public-yum-ol6.repo http://yum.oracle.com/public-yum-ol6.repo && yum-config-manager -q --enable ol6_UEKR4
11
-RUN yum install -y kernel-uek-devel-4.1.12-32.el6uek
12
-
13
-ENV GO_VERSION 1.5.3
14
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
15
-ENV PATH $PATH:/usr/local/go/bin
16
-
17
-ENV AUTO_GOPATH 1
18
-
19
-ENV DOCKER_BUILDTAGS selinux
20
-
21
-ENV CGO_CPPFLAGS -D__EXPORTED_HEADERS__ \
22
-                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/generated/uapi \
23
-                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/uapi \
24
-                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/generated/uapi \
25
-                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/uapi \
26
-                 -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include
27
-
28 1
deleted file mode 100644
... ...
@@ -1,17 +0,0 @@
1
-#
2
-# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/generate.sh"!
3
-#
4
-
5
-FROM oraclelinux:7
6
-
7
-RUN yum groupinstall -y "Development Tools"
8
-RUN yum install -y --enablerepo=ol7_optional_latest btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar
9
-
10
-ENV GO_VERSION 1.5.3
11
-RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12
-ENV PATH $PATH:/usr/local/go/bin
13
-
14
-ENV AUTO_GOPATH 1
15
-
16
-ENV DOCKER_BUILDTAGS selinux
17
-
... ...
@@ -5,7 +5,7 @@ cd "$(dirname "$BASH_SOURCE")/../.."
5 5
 
6 6
 targets_from() {
7 7
        git fetch -q https://github.com/docker/docker.git "$1"
8
-       git ls-tree -r --name-only "$(git rev-parse FETCH_HEAD)" contrib/builder/deb | grep '/Dockerfile$' | sed -r 's!^contrib/builder/deb/|-debootstrap|/Dockerfile$!!g'
8
+       git ls-tree -r --name-only "$(git rev-parse FETCH_HEAD)" contrib/builder/deb/ | grep '/Dockerfile$' | sed -r 's!^contrib/builder/deb/|^contrib/builder/deb/amd64/|-debootstrap|/Dockerfile$!!g' | grep -v /
9 9
 }
10 10
 
11 11
 release_branch=$(git ls-remote --heads https://github.com/docker/docker.git | awk -F 'refs/heads/' '$2 ~ /^release/ { print $2 }' | sort -V | tail -1)
... ...
@@ -17,7 +17,7 @@ Packager: Docker <support@docker.com>
17 17
 %endif
18 18
 
19 19
 # required packages for build
20
-# most are already in the container (see contrib/builder/rpm/generate.sh)
20
+# most are already in the container (see contrib/builder/rpm/ARCH/generate.sh)
21 21
 # only require systemd on those systems
22 22
 %if 0%{?is_systemd}
23 23
 BuildRequires: pkgconfig(systemd)
... ...
@@ -9,6 +9,7 @@ export DOCKER_ENGINE_OSARCH="$(docker version | awk '
9 9
 ')"
10 10
 export DOCKER_ENGINE_GOOS="${DOCKER_ENGINE_OSARCH%/*}"
11 11
 export DOCKER_ENGINE_GOARCH="${DOCKER_ENGINE_OSARCH##*/}"
12
+DOCKER_ENGINE_GOARCH=${DOCKER_ENGINE_GOARCH:=amd64}
12 13
 
13 14
 # and the client, just in case
14 15
 export DOCKER_CLIENT_OSARCH="$(docker version | awk '
... ...
@@ -16,3 +17,18 @@ export DOCKER_CLIENT_OSARCH="$(docker version | awk '
16 16
 	$1 == "Server:" { client = 0; next }
17 17
 	client && $1 == "OS/Arch:" { print $2 }
18 18
 ')"
19
+
20
+# Retrieve the architecture used in contrib/builder/(deb|rpm)/$PACKAGE_ARCH/
21
+PACKAGE_ARCH="amd64"
22
+case "$DOCKER_ENGINE_OSARCH" in
23
+	linux/arm)
24
+		PACKAGE_ARCH='armhf'
25
+		;;
26
+	linux/ppc64le)
27
+		PACKAGE_ARCH='ppc64le'
28
+		;;
29
+	linux/s390x)
30
+		PACKAGE_ARCH='s390x'
31
+		;;
32
+esac
33
+export PACKAGE_ARCH
... ...
@@ -5,6 +5,7 @@ set -e
5 5
 (
6 6
 	export TZ=UTC # make sure our "date" variables are UTC-based
7 7
 	bundle .integration-daemon-start
8
+	bundle .detect-daemon-osarch
8 9
 
9 10
 	# TODO consider using frozen images for the dockercore/builder-deb tags
10 11
 
... ...
@@ -37,7 +38,7 @@ set -e
37 37
 	./man/md2man-all.sh -q || true
38 38
 	# TODO decide if it's worth getting go-md2man in _each_ builder environment to avoid this
39 39
 
40
-	builderDir="contrib/builder/deb"
40
+	builderDir="contrib/builder/deb/${PACKAGE_ARCH}"
41 41
 	pkgs=( $(find "${builderDir}/"*/ -type d) )
42 42
 	if [ ! -z "$DOCKER_BUILD_PKGS" ]; then
43 43
 		pkgs=( $(echo ${DOCKER_BUILD_PKGS[@]/#/$builderDir\/}) )
... ...
@@ -6,6 +6,7 @@ set -e
6 6
 	export TZ=UTC # make sure our "date" variables are UTC-based
7 7
 
8 8
 	source "$(dirname "$BASH_SOURCE")/.integration-daemon-start"
9
+	source "$(dirname "$BASH_SOURCE")/.detect-daemon-osarch"
9 10
 
10 11
 	# TODO consider using frozen images for the dockercore/builder-rpm tags
11 12
 
... ...
@@ -59,15 +60,15 @@ set -e
59 59
 	while read -r line || [[ -n "$line" ]]; do
60 60
 		if [ -z "$line" ]; then continue; fi
61 61
 		if [[ "$line" =~ $VERSION_REGEX ]]; then
62
-			echo >> contrib/builder/rpm/changelog
63
-			echo "* `date -d ${BASH_REMATCH[2]} '+%a %b %d %Y'` ${rpmPackager} - ${BASH_REMATCH[1]}" >> contrib/builder/rpm/changelog
62
+			echo >> contrib/builder/rpm/${PACKAGE_ARCH}/changelog
63
+			echo "* `date -d ${BASH_REMATCH[2]} '+%a %b %d %Y'` ${rpmPackager} - ${BASH_REMATCH[1]}" >> contrib/builder/rpm/${PACKAGE_ARCH}/changelog
64 64
 		fi
65 65
 		if [[ "$line" =~ $ENTRY_REGEX ]]; then
66
-			echo "- ${BASH_REMATCH[1]//\`}" >> contrib/builder/rpm/changelog
66
+			echo "- ${BASH_REMATCH[1]//\`}" >> contrib/builder/rpm/${PACKAGE_ARCH}/changelog
67 67
 		fi
68 68
 	done < CHANGELOG.md
69 69
 
70
-	builderDir="contrib/builder/rpm"
70
+	builderDir="contrib/builder/rpm/${PACKAGE_ARCH}"
71 71
 	pkgs=( $(find "${builderDir}/"*/ -type d) )
72 72
 	if [ ! -z "$DOCKER_BUILD_PKGS" ]; then
73 73
 		pkgs=( $(echo ${DOCKER_BUILD_PKGS[@]/#/$builderDir\/}) )
... ...
@@ -97,7 +98,7 @@ set -e
97 97
 			RUN ln -sfv /usr/src/${rpmName}/hack/make/.build-rpm SPECS
98 98
 			WORKDIR /root/rpmbuild/SPECS
99 99
 			RUN tar -cz -C /usr/src -f /root/rpmbuild/SOURCES/${rpmName}.tar.gz ${rpmName}
100
-			RUN { cat /usr/src/${rpmName}/contrib/builder/rpm/changelog; } >> ${rpmName}.spec && tail >&2 ${rpmName}.spec
100
+			RUN { cat /usr/src/${rpmName}/contrib/builder/rpm/${PACKAGE_ARCH}/changelog; } >> ${rpmName}.spec && tail >&2 ${rpmName}.spec
101 101
 			RUN rpmbuild -ba \
102 102
 				--define '_release $rpmRelease' \
103 103
 				--define '_version $rpmVersion' \
... ...
@@ -93,7 +93,7 @@ if [ ! -f "$APTDIR/conf/docker-engine-release.conf" ]; then
93 93
 fi
94 94
 
95 95
 # release the debs
96
-for dir in contrib/builder/deb/*/; do
96
+for dir in contrib/builder/deb/${PACKAGE_ARCH}/*/; do
97 97
 	version="$(basename "$dir")"
98 98
 	codename="${version//debootstrap-}"
99 99
 
... ...
@@ -122,7 +122,7 @@ apt-ftparchive clean "$APTDIR/conf/apt-ftparchive.conf"
122 122
 # run the apt-ftparchive commands so we can have pinning
123 123
 apt-ftparchive generate "$APTDIR/conf/apt-ftparchive.conf"
124 124
 
125
-for dir in contrib/builder/deb/*/; do
125
+for dir in contrib/builder/deb/${PACKAGE_ARCH}/*/; do
126 126
 	version="$(basename "$dir")"
127 127
 	codename="${version//debootstrap-}"
128 128
 
... ...
@@ -36,7 +36,7 @@ for distro in "${distros[@]}"; do
36 36
 	# Setup the yum repo
37 37
 	REPO=$YUMDIR/$release/$distro
38 38
 
39
-	for dir in contrib/builder/rpm/$distro-*/; do
39
+	for dir in contrib/builder/rpm/${PACKAGE_ARCH}/$distro-*/; do
40 40
 		version="$(basename "$dir")"
41 41
 		suite="${version##*-}"
42 42
 
... ...
@@ -12,7 +12,7 @@ fi
12 12
 
13 13
 test_deb_install(){
14 14
 	# test for each Dockerfile in contrib/builder
15
-	for dir in contrib/builder/deb/*/; do
15
+	for dir in contrib/builder/deb/${PACKAGE_ARCH}/*/; do
16 16
 		local from="$(awk 'toupper($1) == "FROM" { print $2; exit }' "$dir/Dockerfile")"
17 17
 		local dir=$(basename "$dir")
18 18
 
... ...
@@ -12,14 +12,17 @@ From the root of the Docker/Docker repo one can use make to execute the followin
12 12
 - make validate
13 13
 - make binary
14 14
 - make build
15
+- make deb
15 16
 - make bundles
16 17
 - make default
17 18
 - make shell
19
+- make test-unit
20
+- make test-integration-cli
18 21
 - make
19 22
 
20 23
 The Makefile does include logic to determine on which OS and architecture the Docker Development Image is built.
21 24
 Based on OS and architecture it chooses the correct Dockerfile.
22
-For the ARM 32bit architecture it uses `Dockerfile.arm`.
25
+For the ARM 32bit architecture it uses `Dockerfile.armhf`.
23 26
 
24 27
 So for example in order to build a Docker binary one has to  
25 28
 1. clone the Docker/Docker repository on an ARM device `git clone git@github.com:docker/docker.git`