Browse code

project: unify way of installing runc and containerd

Signed-off-by: Alexander Morozov <lk4d4@docker.com>

Alexander Morozov authored on 2016/10/20 03:49:10
Showing 5 changed files
... ...
@@ -9,6 +9,28 @@ GRIMES_COMMIT=15ecf9414859b16a8a19ac6748a622a5498d57e3
9 9
 
10 10
 export GOPATH="$(mktemp -d)"
11 11
 
12
+RUNC_BUILDTAGS="${RUNC_BUILDTAGS:-"seccomp apparmor selinux"}"
13
+
14
+install_runc() {
15
+	echo "Install runc version $RUNC_COMMIT"
16
+	git clone https://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc"
17
+	cd "$GOPATH/src/github.com/opencontainers/runc"
18
+	git checkout -q "$RUNC_COMMIT"
19
+	make BUILDTAGS="$RUNC_BUILDTAGS" $1
20
+	cp runc /usr/local/bin/docker-runc
21
+}
22
+
23
+install_containerd() {
24
+	echo "Install containerd version $CONTAINERD_COMMIT"
25
+	git clone https://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd"
26
+	cd "$GOPATH/src/github.com/docker/containerd"
27
+	git checkout -q "$CONTAINERD_COMMIT"
28
+	make $1
29
+	cp bin/containerd /usr/local/bin/docker-containerd
30
+	cp bin/containerd-shim /usr/local/bin/docker-containerd-shim
31
+	cp bin/ctr /usr/local/bin/docker-containerd-ctr
32
+}
33
+
12 34
 for prog in "$@"
13 35
 do
14 36
 	case $prog in
... ...
@@ -20,23 +42,19 @@ do
20 20
 			;;
21 21
 
22 22
 		runc)
23
-			echo "Install runc version $RUNC_COMMIT"
24
-			git clone https://github.com/opencontainers/runc.git "$GOPATH/src/github.com/opencontainers/runc"
25
-			cd "$GOPATH/src/github.com/opencontainers/runc"
26
-			git checkout -q "$RUNC_COMMIT"
27
-			make static BUILDTAGS="seccomp apparmor selinux"
28
-			cp runc /usr/local/bin/docker-runc
23
+			install_runc static
24
+			;;
25
+
26
+		runc-dynamic)
27
+			install_runc
29 28
 			;;
30 29
 
31 30
 		containerd)
32
-			echo "Install containerd version $CONTAINERD_COMMIT"
33
-			git clone https://github.com/docker/containerd.git "$GOPATH/src/github.com/docker/containerd"
34
-			cd "$GOPATH/src/github.com/docker/containerd"
35
-			git checkout -q "$CONTAINERD_COMMIT"
36
-			make static
37
-			cp bin/containerd /usr/local/bin/docker-containerd
38
-			cp bin/containerd-shim /usr/local/bin/docker-containerd-shim
39
-			cp bin/ctr /usr/local/bin/docker-containerd-ctr
31
+			install_containerd static
32
+			;;
33
+
34
+		containerd-dynamic)
35
+			install_containerd
40 36
 			;;
41 37
 
42 38
 		grimes)
... ...
@@ -25,10 +25,10 @@ override_dh_auto_install:
25 25
 	cp -aT "$$(readlink -f bundles/$(VERSION)/dynbinary-client/docker)" debian/docker-engine/usr/bin/docker
26 26
 	cp -aT "$$(readlink -f bundles/$(VERSION)/dynbinary-daemon/dockerd)" debian/docker-engine/usr/bin/dockerd
27 27
 	cp -aT "$$(readlink -f bundles/$(VERSION)/dynbinary-daemon/docker-proxy)" debian/docker-engine/usr/bin/docker-proxy
28
-	cp -aT /usr/local/bin/containerd debian/docker-engine/usr/bin/docker-containerd
29
-	cp -aT /usr/local/bin/containerd-shim debian/docker-engine/usr/bin/docker-containerd-shim
30
-	cp -aT /usr/local/bin/ctr debian/docker-engine/usr/bin/docker-containerd-ctr
31
-	cp -aT /usr/local/sbin/runc debian/docker-engine/usr/bin/docker-runc
28
+	cp -aT /usr/local/bin/docker-containerd debian/docker-engine/usr/bin/docker-containerd
29
+	cp -aT /usr/local/bin/docker-containerd-shim debian/docker-engine/usr/bin/docker-containerd-shim
30
+	cp -aT /usr/local/bin/docker-containerd-ctr debian/docker-engine/usr/bin/docker-containerd-ctr
31
+	cp -aT /usr/local/bin/docker-runc debian/docker-engine/usr/bin/docker-runc
32 32
 	mkdir -p debian/docker-engine/usr/lib/docker
33 33
 
34 34
 override_dh_installinit:
... ...
@@ -129,12 +129,12 @@ install -p -m 755 bundles/%{_origversion}/dynbinary-daemon/dockerd-%{_origversio
129 129
 install -p -m 755 bundles/%{_origversion}/dynbinary-daemon/docker-proxy-%{_origversion} $RPM_BUILD_ROOT/%{_bindir}/docker-proxy
130 130
 
131 131
 # install containerd
132
-install -p -m 755 /usr/local/bin/containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd
133
-install -p -m 755 /usr/local/bin/containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim
134
-install -p -m 755 /usr/local/bin/ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr
132
+install -p -m 755 /usr/local/bin/docker-containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd
133
+install -p -m 755 /usr/local/bin/docker-containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim
134
+install -p -m 755 /usr/local/bin/docker-containerd-ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr
135 135
 
136 136
 # install runc
137
-install -p -m 755 /usr/local/sbin/runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc
137
+install -p -m 755 /usr/local/bin/docker-runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc
138 138
 
139 139
 # install udev rules
140 140
 install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d
... ...
@@ -72,23 +72,11 @@ set -e
72 72
 				&& ln -snf /usr/src/docker /go/src/github.com/docker/docker
73 73
 		EOF
74 74
 
75
-		echo "ENV RUNC_COMMIT $(grep "^RUNC_COMMIT" hack/dockerfile/install-binaries.sh | cut -d"=" -f 2)" >> "$DEST/$version/Dockerfile.build"
76
-		echo "ENV CONTAINERD_COMMIT $(grep "^CONTAINERD_COMMIT" hack/dockerfile/install-binaries.sh | cut -d"=" -f 2)" >> "$DEST/$version/Dockerfile.build"
77
-
78
-		# add runc and containerd compile and install
79 75
 		cat >> "$DEST/$version/Dockerfile.build" <<-EOF
80
-			# Install runc
81
-			RUN git clone https://github.com/opencontainers/runc.git "/go/src/github.com/opencontainers/runc" \
82
-					&& cd "/go/src/github.com/opencontainers/runc" \
83
-					&& git checkout -q "\$RUNC_COMMIT"
84
-			RUN set -x && export GOPATH="/go" && cd "/go/src/github.com/opencontainers/runc" \
85
-					&& make BUILDTAGS="\$RUNC_BUILDTAGS" && make install
86
-			# Install containerd
87
-			RUN git clone https://github.com/docker/containerd.git "/go/src/github.com/docker/containerd" \
88
-					&& cd "/go/src/github.com/docker/containerd" \
89
-					&& git checkout -q "\$CONTAINERD_COMMIT"
90
-			RUN set -x && export GOPATH="/go" && cd "/go/src/github.com/docker/containerd" && make && make install
76
+			# Install runc and containerd
77
+			RUN ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic
91 78
 		EOF
79
+
92 80
 		if [ "$DOCKER_EXPERIMENTAL" ]; then
93 81
 			echo 'ENV DOCKER_EXPERIMENTAL 1' >> "$DEST/$version/Dockerfile.build"
94 82
 		fi
... ...
@@ -92,23 +92,11 @@ set -e
92 92
 			RUN mkdir -p /go/src/github.com/docker && mkdir -p /go/src/github.com/opencontainers
93 93
 		EOF
94 94
 
95
-		echo "ENV RUNC_COMMIT $(grep "^RUNC_COMMIT" hack/dockerfile/install-binaries.sh | cut -d"=" -f 2)" >> "$DEST/$version/Dockerfile.build"
96
-		echo "ENV CONTAINERD_COMMIT $(grep "^CONTAINERD_COMMIT" hack/dockerfile/install-binaries.sh | cut -d"=" -f 2)" >> "$DEST/$version/Dockerfile.build"
97
-
98
-		# add runc and containerd compile and install
99 95
 		cat >> "$DEST/$version/Dockerfile.build" <<-EOF
100
-			# Install runc
101
-			RUN git clone https://github.com/opencontainers/runc.git "/go/src/github.com/opencontainers/runc" \
102
-					&& cd "/go/src/github.com/opencontainers/runc" \
103
-					&& git checkout -q "\$RUNC_COMMIT"
104
-			RUN set -x && export GOPATH="/go" && cd "/go/src/github.com/opencontainers/runc" \
105
-					&& make BUILDTAGS="\$RUNC_BUILDTAGS" && make install
106
-			# Install containerd
107
-			RUN git clone https://github.com/docker/containerd.git "/go/src/github.com/docker/containerd" \
108
-					&& cd "/go/src/github.com/docker/containerd" \
109
-					&& git checkout -q "\$CONTAINERD_COMMIT"
110
-			RUN set -x && export GOPATH="/go" && cd "/go/src/github.com/docker/containerd" && make && make install
96
+			# Install runc and containerd
97
+			RUN ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic
111 98
 		EOF
99
+
112 100
 		if [ "$DOCKER_EXPERIMENTAL" ]; then
113 101
 			echo 'ENV DOCKER_EXPERIMENTAL 1' >> "$DEST/$version/Dockerfile.build"
114 102
 		fi