Browse code

Update Dockerfiles to use Debian stretch

The main gain here is that they all use exactly the same distro; previously
arm64 was using Ubuntu Xenial because Debian jessie was too old.

Does not seem that we can change any of the downloaded dependencies still,
as eg libseccomp is still not the version we are using.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>

Justin Cormack authored on 2017/08/01 22:26:13
Showing 6 changed files
... ...
@@ -23,7 +23,7 @@
23 23
 # the case. Therefore, you don't have to disable it anymore.
24 24
 #
25 25
 
26
-FROM debian:jessie
26
+FROM debian:stretch
27 27
 
28 28
 # allow replacing httpredir or deb mirror
29 29
 ARG APT_MIRROR=deb.debian.org
... ...
@@ -54,8 +54,9 @@ RUN apt-get update && apt-get install -y \
54 54
 	libnl-3-dev \
55 55
 	libprotobuf-c0-dev \
56 56
 	libprotobuf-dev \
57
-	libsystemd-journal-dev \
57
+	libsystemd-dev \
58 58
 	libtool \
59
+	libudev-dev \
59 60
 	mercurial \
60 61
 	net-tools \
61 62
 	pkg-config \
... ...
@@ -64,8 +65,10 @@ RUN apt-get update && apt-get install -y \
64 64
 	python-dev \
65 65
 	python-mock \
66 66
 	python-pip \
67
+	python-setuptools \
67 68
 	python-websocket \
68 69
 	tar \
70
+	thin-provisioning-tools \
69 71
 	vim \
70 72
 	vim-common \
71 73
 	xfsprogs \
... ...
@@ -85,6 +88,7 @@ RUN cd /usr/local/lvm2 \
85 85
 		--build="$(gcc -print-multiarch)" \
86 86
 		--enable-static_link \
87 87
 		--enable-pkgconfig \
88
+		--enable-udev_sync \
88 89
 	&& make -C include \
89 90
 	&& make -C libdm install_device-mapper
90 91
 
... ...
@@ -15,14 +15,20 @@
15 15
 # the case. Therefore, you don't have to disable it anymore.
16 16
 #
17 17
 
18
-FROM aarch64/ubuntu:xenial
18
+FROM arm64v8/debian:stretch
19
+
20
+# allow replacing httpredir or deb mirror
21
+ARG APT_MIRROR=deb.debian.org
22
+RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
19 23
 
20 24
 # Packaged dependencies
21 25
 RUN apt-get update && apt-get install -y \
22 26
 	apparmor \
27
+	apt-utils \
23 28
 	aufs-tools \
24 29
 	automake \
25 30
 	bash-completion \
31
+	bsdmainutils \
26 32
 	btrfs-tools \
27 33
 	build-essential \
28 34
 	cmake \
... ...
@@ -32,26 +38,34 @@ RUN apt-get update && apt-get install -y \
32 32
 	g++ \
33 33
 	gcc \
34 34
 	git \
35
+	golang \
35 36
 	iptables \
36 37
 	jq \
38
+	less \
37 39
 	libapparmor-dev \
38
-	libc6-dev \
39 40
 	libcap-dev \
41
+	libnl-3-dev \
42
+	libprotobuf-c0-dev \
43
+	libprotobuf-dev \
40 44
 	libsystemd-dev \
41
-	libyaml-dev \
45
+	libtool \
46
+	libudev-dev \
42 47
 	mercurial \
43 48
 	net-tools \
44
-	parallel \
45 49
 	pkg-config \
50
+	protobuf-compiler \
51
+	protobuf-c-compiler \
46 52
 	python-dev \
47 53
 	python-mock \
48 54
 	python-pip \
49 55
 	python-setuptools \
50 56
 	python-websocket \
51
-	golang-go \
52
-	iproute2 \
53
-	iputils-ping \
57
+	tar \
58
+	thin-provisioning-tools \
59
+	vim \
54 60
 	vim-common \
61
+	xfsprogs \
62
+	zip \
55 63
 	--no-install-recommends
56 64
 
57 65
 # Get lvm2 sources to build statically linked devmapper library
... ...
@@ -66,6 +80,7 @@ RUN cd /usr/local/lvm2 \
66 66
 		--build="$(gcc -print-multiarch)" \
67 67
 		--enable-static_link \
68 68
 		--enable-pkgconfig \
69
+		--enable-udev_sync \
69 70
 	&& make -C include \
70 71
 	&& make -C libdm install_device-mapper
71 72
 
... ...
@@ -86,9 +101,7 @@ RUN set -x \
86 86
 
87 87
 # Install Go
88 88
 # We don't have official binary golang 1.7.5 tarballs for ARM64, either for Go or
89
-# bootstrap, so we use golang-go (1.6) as bootstrap to build Go from source code.
90
-# We don't use the official ARMv6 released binaries as a GOROOT_BOOTSTRAP, because
91
-# not all ARM64 platforms support 32-bit mode. 32-bit mode is optional for ARMv8.
89
+# bootstrap, so we use Debian golang (1.7) as bootstrap to build Go from source code.
92 90
 # IMPORTANT: When updating this please note that stdlib archive/tar pkg is vendored
93 91
 ENV GO_VERSION 1.8.3
94 92
 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 \
... ...
@@ -15,7 +15,7 @@
15 15
 # the case. Therefore, you don't have to disable it anymore.
16 16
 #
17 17
 
18
-FROM armhf/debian:jessie
18
+FROM arm32v7/debian:stretch
19 19
 
20 20
 # allow replacing httpredir or deb mirror
21 21
 ARG APT_MIRROR=deb.debian.org
... ...
@@ -39,16 +39,19 @@ RUN apt-get update && apt-get install -y \
39 39
 	net-tools \
40 40
 	libapparmor-dev \
41 41
 	libcap-dev \
42
-	libsystemd-journal-dev \
42
+	libsystemd-dev \
43 43
 	libtool \
44
+	libudev-dev \
44 45
 	mercurial \
45 46
 	pkg-config \
46 47
 	python-dev \
47 48
 	python-mock \
48 49
 	python-pip \
50
+	python-setuptools \
49 51
 	python-websocket \
50 52
 	xfsprogs \
51 53
 	tar \
54
+	thin-provisioning-tools \
52 55
 	vim-common \
53 56
 	--no-install-recommends \
54 57
 	&& pip install awscli==1.10.15
... ...
@@ -65,6 +68,7 @@ RUN cd /usr/local/lvm2 \
65 65
 		--build="$(gcc -print-multiarch)" \
66 66
 		--enable-static_link \
67 67
 		--enable-pkgconfig \
68
+		--enable-udev_sync \
68 69
 	&& make -C include \
69 70
 	&& make -C libdm install_device-mapper
70 71
 
... ...
@@ -15,7 +15,7 @@
15 15
 # the case. Therefore, you don't have to disable it anymore.
16 16
 #
17 17
 
18
-FROM ppc64le/debian:jessie
18
+FROM ppc64le/debian:stretch
19 19
 
20 20
 # allow replacing httpredir or deb mirror
21 21
 ARG APT_MIRROR=deb.debian.org
... ...
@@ -40,16 +40,19 @@ RUN apt-get update && apt-get install -y \
40 40
 	net-tools \
41 41
 	libapparmor-dev \
42 42
 	libcap-dev \
43
-	libsystemd-journal-dev \
43
+	libsystemd-dev \
44 44
 	libtool \
45
+	libudev-dev \
45 46
 	mercurial \
46 47
 	pkg-config \
47 48
 	python-dev \
48 49
 	python-mock \
49 50
 	python-pip \
51
+	python-setuptools \
50 52
 	python-websocket \
51 53
 	xfsprogs \
52 54
 	tar \
55
+	thin-provisioning-tools \
53 56
 	vim-common \
54 57
 	--no-install-recommends
55 58
 
... ...
@@ -65,6 +68,7 @@ RUN cd /usr/local/lvm2 \
65 65
 		--build="$(gcc -print-multiarch)" \
66 66
 		--enable-static_link \
67 67
 		--enable-pkgconfig \
68
+		--enable-udev_sync \
68 69
 	&& make -C include \
69 70
 	&& make -C libdm install_device-mapper
70 71
 
... ...
@@ -15,7 +15,7 @@
15 15
 # the case. Therefore, you don't have to disable it anymore.
16 16
 #
17 17
 
18
-FROM s390x/debian:jessie
18
+FROM s390x/debian:stretch
19 19
 
20 20
 # Packaged dependencies
21 21
 RUN apt-get update && apt-get install -y \
... ...
@@ -36,16 +36,19 @@ RUN apt-get update && apt-get install -y \
36 36
 	net-tools \
37 37
 	libapparmor-dev \
38 38
 	libcap-dev \
39
-	libsystemd-journal-dev \
39
+	libsystemd-dev \
40 40
 	libtool \
41
+	libudev-dev \
41 42
 	mercurial \
42 43
 	pkg-config \
43 44
 	python-dev \
44 45
 	python-mock \
45 46
 	python-pip \
47
+	python-setuptools \
46 48
 	python-websocket \
47 49
 	xfsprogs \
48 50
 	tar \
51
+	thin-provisioning-tools \
49 52
 	vim-common \
50 53
 	--no-install-recommends
51 54
 
... ...
@@ -76,6 +79,7 @@ RUN cd /usr/local/lvm2 \
76 76
 		--build="$(gcc -print-multiarch)" \
77 77
 		--enable-static_link \
78 78
 		--enable-pkgconfig \
79
+		--enable-udev_sync \
79 80
 	&& make -C include \
80 81
 	&& make -C libdm install_device-mapper
81 82
 
... ...
@@ -5,7 +5,7 @@
5 5
 
6 6
 # This represents the bare minimum required to build and test Docker.
7 7
 
8
-FROM debian:jessie
8
+FROM debian:stretch
9 9
 
10 10
 # allow replacing httpredir or deb mirror
11 11
 ARG APT_MIRROR=deb.debian.org