Browse code

update debs/rpms for seccomp

Signed-off-by: Jessica Frazelle <acidburn@docker.com>

Jessica Frazelle authored on 2015/11/15 11:02:08
Showing 16 changed files
... ...
@@ -4,11 +4,12 @@
4 4
 
5 5
 FROM debian:jessie
6 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 libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
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  libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8 8
 
9 9
 ENV GO_VERSION 1.5.1
10 10
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11 11
 ENV PATH $PATH:/usr/local/go/bin
12 12
 
13 13
 ENV AUTO_GOPATH 1
14
+
14 15
 ENV DOCKER_BUILDTAGS apparmor selinux
... ...
@@ -4,11 +4,12 @@
4 4
 
5 5
 FROM debian:stretch
6 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 libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
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 libseccomp-dev libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8 8
 
9 9
 ENV GO_VERSION 1.5.1
10 10
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11 11
 ENV PATH $PATH:/usr/local/go/bin
12 12
 
13 13
 ENV AUTO_GOPATH 1
14
-ENV DOCKER_BUILDTAGS apparmor selinux
14
+
15
+ENV DOCKER_BUILDTAGS apparmor seccomp selinux
... ...
@@ -4,11 +4,12 @@
4 4
 
5 5
 FROM debian:wheezy-backports
6 6
 
7
-RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools/wheezy-backports 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/*
7
+RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools/wheezy-backports 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/*
8 8
 
9 9
 ENV GO_VERSION 1.5.1
10 10
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11 11
 ENV PATH $PATH:/usr/local/go/bin
12 12
 
13 13
 ENV AUTO_GOPATH 1
14
+
14 15
 ENV DOCKER_BUILDTAGS apparmor selinux
... ...
@@ -58,6 +58,7 @@ for version in "${versions[@]}"; do
58 58
 		libdevmapper-dev # for "libdevmapper.h"
59 59
 		libltdl-dev # for pkcs11 "ltdl.h"
60 60
 		libsqlite3-dev # for "sqlite3.h"
61
+		libseccomp-dev  # for "seccomp.h" & "libseccomp.so"
61 62
 	)
62 63
 	# packaging for "sd-journal.h" and libraries varies
63 64
 	case "$suite" in
... ...
@@ -66,6 +67,18 @@ for version in "${versions[@]}"; do
66 66
 		*) packages+=( libsystemd-journal-dev );;
67 67
 	esac
68 68
 
69
+	# debian wheezy & ubuntu precise do not have the right libseccomp libs
70
+	# debian jessie & ubuntu trusty/vivid do not have a libseccomp.a for compiling static dockerinit
71
+	case "$suite" in
72
+		jessie|precise|trusty|vivid|wheezy)
73
+			packages=( "${packages[@]/libseccomp-dev}" )
74
+			;;
75
+		*)
76
+			extraBuildTags+=' seccomp'
77
+			;;
78
+	esac
79
+
80
+
69 81
 	if [ "$suite" = 'precise' ]; then
70 82
 		# precise has a few package issues
71 83
 
... ...
@@ -99,5 +112,11 @@ for version in "${versions[@]}"; do
99 99
 	echo >> "$version/Dockerfile"
100 100
 
101 101
 	echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
102
-	awk '$1 == "ENV" && $2 == "DOCKER_BUILDTAGS" { print $0 "'"$extraBuildTags"'"; exit }' ../../../Dockerfile >> "$version/Dockerfile"
102
+
103
+	echo >> "$version/Dockerfile"
104
+
105
+	# print build tags in alphabetical order
106
+	buildTags=$( echo "apparmor selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
107
+
108
+	echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
103 109
 done
... ...
@@ -4,11 +4,12 @@
4 4
 
5 5
 FROM ubuntu:precise
6 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 --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  git libapparmor-dev  libltdl-dev libsqlite3-dev  --no-install-recommends && rm -rf /var/lib/apt/lists/*
8 8
 
9 9
 ENV GO_VERSION 1.5.1
10 10
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11 11
 ENV PATH $PATH:/usr/local/go/bin
12 12
 
13 13
 ENV AUTO_GOPATH 1
14
-ENV DOCKER_BUILDTAGS apparmor selinux exclude_graphdriver_devicemapper exclude_graphdriver_btrfs
14
+
15
+ENV DOCKER_BUILDTAGS apparmor exclude_graphdriver_btrfs exclude_graphdriver_devicemapper selinux
... ...
@@ -4,11 +4,12 @@
4 4
 
5 5
 FROM ubuntu:trusty
6 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 libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
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  libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8 8
 
9 9
 ENV GO_VERSION 1.5.1
10 10
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11 11
 ENV PATH $PATH:/usr/local/go/bin
12 12
 
13 13
 ENV AUTO_GOPATH 1
14
+
14 15
 ENV DOCKER_BUILDTAGS apparmor selinux
... ...
@@ -4,11 +4,12 @@
4 4
 
5 5
 FROM ubuntu:vivid
6 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 libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
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  libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8 8
 
9 9
 ENV GO_VERSION 1.5.1
10 10
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11 11
 ENV PATH $PATH:/usr/local/go/bin
12 12
 
13 13
 ENV AUTO_GOPATH 1
14
+
14 15
 ENV DOCKER_BUILDTAGS apparmor selinux
... ...
@@ -4,11 +4,12 @@
4 4
 
5 5
 FROM ubuntu:wily
6 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 libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
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 libseccomp-dev libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
8 8
 
9 9
 ENV GO_VERSION 1.5.1
10 10
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
11 11
 ENV PATH $PATH:/usr/local/go/bin
12 12
 
13 13
 ENV AUTO_GOPATH 1
14
-ENV DOCKER_BUILDTAGS apparmor selinux
14
+
15
+ENV DOCKER_BUILDTAGS apparmor seccomp selinux
... ...
@@ -6,11 +6,12 @@ FROM centos:7
6 6
 
7 7
 RUN yum groupinstall -y "Development Tools"
8 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 selinux-policy selinux-policy-devel sqlite-devel tar
9
+RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
10 10
 
11 11
 ENV GO_VERSION 1.5.1
12 12
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
13 13
 ENV PATH $PATH:/usr/local/go/bin
14 14
 
15 15
 ENV AUTO_GOPATH 1
16
+
16 17
 ENV DOCKER_BUILDTAGS selinux
... ...
@@ -5,11 +5,12 @@
5 5
 FROM fedora:21
6 6
 
7 7
 RUN yum install -y @development-tools fedora-packager
8
-RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
8
+RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
9 9
 
10 10
 ENV GO_VERSION 1.5.1
11 11
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12 12
 ENV PATH $PATH:/usr/local/go/bin
13 13
 
14 14
 ENV AUTO_GOPATH 1
15
+
15 16
 ENV DOCKER_BUILDTAGS selinux
... ...
@@ -5,11 +5,12 @@
5 5
 FROM fedora:22
6 6
 
7 7
 RUN dnf install -y @development-tools fedora-packager
8
-RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
8
+RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
9 9
 
10 10
 ENV GO_VERSION 1.5.1
11 11
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12 12
 ENV PATH $PATH:/usr/local/go/bin
13 13
 
14 14
 ENV AUTO_GOPATH 1
15
+
15 16
 ENV DOCKER_BUILDTAGS selinux
... ...
@@ -5,11 +5,12 @@
5 5
 FROM fedora:23
6 6
 
7 7
 RUN dnf install -y @development-tools fedora-packager
8
-RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
8
+RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
9 9
 
10 10
 ENV GO_VERSION 1.5.1
11 11
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12 12
 ENV PATH $PATH:/usr/local/go/bin
13 13
 
14 14
 ENV AUTO_GOPATH 1
15
+
15 16
 ENV DOCKER_BUILDTAGS selinux
... ...
@@ -38,6 +38,8 @@ for version in "${versions[@]}"; do
38 38
 
39 39
 	echo >> "$version/Dockerfile"
40 40
 
41
+	extraBuildTags=
42
+
41 43
 	case "$from" in
42 44
 		centos:*)
43 45
 			# get "Development Tools" packages dependencies
... ...
@@ -65,6 +67,7 @@ for version in "${versions[@]}"; do
65 65
 		btrfs-progs-devel # for "btrfs/ioctl.h" (and "version.h" if possible)
66 66
 		device-mapper-devel # for "libdevmapper.h"
67 67
 		glibc-static
68
+		libseccomp-devel # for "seccomp.h" & "libseccomp.so"
68 69
 		libselinux-devel # for "libselinux.so"
69 70
 		libtool-ltdl-devel # for pkcs11 "ltdl.h"
70 71
 		selinux-policy
... ...
@@ -80,6 +83,17 @@ for version in "${versions[@]}"; do
80 80
 			;;
81 81
 	esac
82 82
 
83
+	# opensuse & oraclelinx:6 do not have the right libseccomp libs
84
+	# centos, fedora, & oraclelinux:7 do not have a libseccomp.a for compiling static dockerinit
85
+	case "$from" in
86
+		centos:*|fedora:*|opensuse:*|oraclelinux:*)
87
+			packages=( "${packages[@]/libseccomp-devel}" )
88
+			;;
89
+		*)
90
+			extraBuildTags+=' seccomp'
91
+			;;
92
+	esac
93
+
83 94
 	case "$from" in
84 95
 		opensuse:*)
85 96
 			packages=( "${packages[@]/btrfs-progs-devel/libbtrfs-devel}" )
... ...
@@ -101,5 +115,10 @@ for version in "${versions[@]}"; do
101 101
 
102 102
 	echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
103 103
 
104
-	echo 'ENV DOCKER_BUILDTAGS selinux' >> "$version/Dockerfile"
104
+	echo >> "$version/Dockerfile"
105
+
106
+	# print build tags in alphabetical order
107
+	buildTags=$( echo "selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
108
+
109
+	echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
105 110
 done
... ...
@@ -5,11 +5,12 @@
5 5
 FROM opensuse:13.2
6 6
 
7 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 selinux-policy selinux-policy-devel sqlite-devel tar
8
+RUN zypper --non-interactive install libbtrfs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
9 9
 
10 10
 ENV GO_VERSION 1.5.1
11 11
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12 12
 ENV PATH $PATH:/usr/local/go/bin
13 13
 
14 14
 ENV AUTO_GOPATH 1
15
+
15 16
 ENV DOCKER_BUILDTAGS selinux
... ...
@@ -5,11 +5,12 @@
5 5
 FROM oraclelinux:6
6 6
 
7 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 selinux-policy selinux-policy-devel sqlite-devel tar
8
+RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
9 9
 
10 10
 ENV GO_VERSION 1.5.1
11 11
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12 12
 ENV PATH $PATH:/usr/local/go/bin
13 13
 
14 14
 ENV AUTO_GOPATH 1
15
+
15 16
 ENV DOCKER_BUILDTAGS selinux
... ...
@@ -5,11 +5,12 @@
5 5
 FROM oraclelinux:7
6 6
 
7 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 selinux-policy selinux-policy-devel sqlite-devel tar
8
+RUN yum install -y --enablerepo=ol7_optional_latest btrfs-progs-devel device-mapper-devel glibc-static  libselinux-devel libtool-ltdl-devel selinux-policy selinux-policy-devel sqlite-devel tar
9 9
 
10 10
 ENV GO_VERSION 1.5.1
11 11
 RUN curl -fSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
12 12
 ENV PATH $PATH:/usr/local/go/bin
13 13
 
14 14
 ENV AUTO_GOPATH 1
15
+
15 16
 ENV DOCKER_BUILDTAGS selinux