Browse code

Replace grimes with tini

There is no reason to duplicate efforts and tini is well built and
better than grimes. It is a much stronger option for the default init
and @krallin has done a great job maintaining it and helping make
changes so that it will work with Docker.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Michael Crosby authored on 2016/11/04 01:47:50
Showing 11 changed files
... ...
@@ -47,6 +47,7 @@ RUN apt-get update && apt-get install -y \
47 47
 	btrfs-tools \
48 48
 	build-essential \
49 49
 	clang \
50
+	cmake \
50 51
 	createrepo \
51 52
 	curl \
52 53
 	dpkg-sig \
... ...
@@ -74,6 +75,7 @@ RUN apt-get update && apt-get install -y \
74 74
 	python-websocket \
75 75
 	ubuntu-zfs \
76 76
 	xfsprogs \
77
+	vim-common \
77 78
 	libzfs-dev \
78 79
 	tar \
79 80
 	zip \
... ...
@@ -232,10 +234,10 @@ RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
232 232
 	hello-world:latest@sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
233 233
 # See also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
234 234
 
235
-# Install tomlv, vndr, runc, containerd, grimes, docker-proxy
235
+# Install tomlv, vndr, runc, containerd, tini, docker-proxy
236 236
 # Please edit hack/dockerfile/install-binaries.sh to update them.
237 237
 COPY hack/dockerfile/install-binaries.sh /tmp/install-binaries.sh
238
-RUN /tmp/install-binaries.sh tomlv vndr runc containerd grimes proxy
238
+RUN /tmp/install-binaries.sh tomlv vndr runc containerd tini proxy
239 239
 
240 240
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
241 241
 ENTRYPOINT ["hack/dind"]
... ...
@@ -25,6 +25,7 @@ RUN apt-get update && apt-get install -y \
25 25
 	bash-completion \
26 26
 	btrfs-tools \
27 27
 	build-essential \
28
+	cmake \
28 29
 	createrepo \
29 30
 	curl \
30 31
 	dpkg-sig \
... ...
@@ -50,6 +51,7 @@ RUN apt-get update && apt-get install -y \
50 50
 	gccgo \
51 51
 	iproute2 \
52 52
 	iputils-ping \
53
+	vim-common \
53 54
 	--no-install-recommends
54 55
 
55 56
 # Get lvm2 source for compiling statically
... ...
@@ -160,10 +162,10 @@ RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
160 160
 	aarch64/hello-world:latest@sha256:65a4a158587b307bb02db4de41b836addb0c35175bdc801367b1ac1ddeb9afda
161 161
 # See also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
162 162
 
163
-# Install tomlv, vndr, runc, containerd, grimes, docker-proxy
163
+# Install tomlv, vndr, runc, containerd, tini, docker-proxy
164 164
 # Please edit hack/dockerfile/install-binaries.sh to update them.
165 165
 COPY hack/dockerfile/install-binaries.sh /tmp/install-binaries.sh
166
-RUN /tmp/install-binaries.sh tomlv vndr runc containerd grimes proxy
166
+RUN /tmp/install-binaries.sh tomlv vndr runc containerd tini proxy
167 167
 
168 168
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
169 169
 ENTRYPOINT ["hack/dind"]
... ...
@@ -27,6 +27,7 @@ RUN apt-get update && apt-get install -y \
27 27
 	build-essential \
28 28
 	createrepo \
29 29
 	curl \
30
+	cmake \
30 31
 	dpkg-sig \
31 32
 	git \
32 33
 	iptables \
... ...
@@ -46,6 +47,7 @@ RUN apt-get update && apt-get install -y \
46 46
 	python-websocket \
47 47
 	xfsprogs \
48 48
 	tar \
49
+	vim-common \
49 50
 	--no-install-recommends \
50 51
 	&& pip install awscli==1.10.15
51 52
 
... ...
@@ -164,10 +166,10 @@ RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
164 164
 	armhf/hello-world:latest@sha256:161dcecea0225975b2ad5f768058212c1e0d39e8211098666ffa1ac74cfb7791
165 165
 # See also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
166 166
 
167
-# Install tomlv, vndr, runc, containerd, grimes, docker-proxy
167
+# Install tomlv, vndr, runc, containerd, tini, docker-proxy
168 168
 # Please edit hack/dockerfile/install-binaries.sh to update them.
169 169
 COPY hack/dockerfile/install-binaries.sh /tmp/install-binaries.sh
170
-RUN /tmp/install-binaries.sh tomlv vndr runc containerd grimes proxy
170
+RUN /tmp/install-binaries.sh tomlv vndr runc containerd tini proxy
171 171
 
172 172
 ENTRYPOINT ["hack/dind"]
173 173
 
... ...
@@ -26,6 +26,7 @@ RUN apt-get update && apt-get install -y \
26 26
 	bash-completion \
27 27
 	btrfs-tools \
28 28
 	build-essential \
29
+	cmake \
29 30
 	createrepo \
30 31
 	curl \
31 32
 	dpkg-sig \
... ...
@@ -47,6 +48,7 @@ RUN apt-get update && apt-get install -y \
47 47
 	python-websocket \
48 48
 	xfsprogs \
49 49
 	tar \
50
+	vim-common \
50 51
 	--no-install-recommends
51 52
 
52 53
 # Get lvm2 source for compiling statically
... ...
@@ -183,10 +185,10 @@ RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
183 183
 	ppc64le/hello-world:latest@sha256:186a40a9a02ca26df0b6c8acdfb8ac2f3ae6678996a838f977e57fac9d963974
184 184
 # See also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
185 185
 
186
-# Install tomlv, vndr, runc, containerd, grimes, docker-proxy
186
+# Install tomlv, vndr, runc, containerd, tini, docker-proxy
187 187
 # Please edit hack/dockerfile/install-binaries.sh to update them.
188 188
 COPY hack/dockerfile/install-binaries.sh /tmp/install-binaries.sh
189
-RUN /tmp/install-binaries.sh tomlv vndr runc containerd grimes proxy
189
+RUN /tmp/install-binaries.sh tomlv vndr runc containerd tini proxy
190 190
 
191 191
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
192 192
 ENTRYPOINT ["hack/dind"]
... ...
@@ -25,6 +25,7 @@ RUN apt-get update && apt-get install -y \
25 25
 	bash-completion \
26 26
 	btrfs-tools \
27 27
 	build-essential \
28
+	cmake \
28 29
 	createrepo \
29 30
 	curl \
30 31
 	dpkg-sig \
... ...
@@ -46,6 +47,7 @@ RUN apt-get update && apt-get install -y \
46 46
 	python-websocket \
47 47
 	xfsprogs \
48 48
 	tar \
49
+	vim-common \
49 50
 	--no-install-recommends
50 51
 
51 52
 # glibc in Debian has a bug specific to s390x that won't be fixed until Debian 8.6 is released
... ...
@@ -175,10 +177,10 @@ RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \
175 175
 	s390x/hello-world:latest@sha256:780d80b3a7677c3788c0d5cd9168281320c8d4a6d9183892d8ee5cdd610f5699
176 176
 # See also "hack/make/.ensure-frozen-images" (which needs to be updated any time this list is)
177 177
 
178
-# Install tomlv, vndr, runc, containerd, grimes, docker-proxy
178
+# Install tomlv, vndr, runc, containerd, tini, docker-proxy
179 179
 # Please edit hack/dockerfile/install-binaries.sh to update them.
180 180
 COPY hack/dockerfile/install-binaries.sh /tmp/install-binaries.sh
181
-RUN /tmp/install-binaries.sh tomlv vndr runc containerd grimes proxy
181
+RUN /tmp/install-binaries.sh tomlv vndr runc containerd tini proxy
182 182
 
183 183
 # Wrap all commands in the "docker-in-docker" script to allow nested containers
184 184
 ENTRYPOINT ["hack/dind"]
... ...
@@ -14,6 +14,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
14 14
 		btrfs-tools \
15 15
 		build-essential \
16 16
 		curl \
17
+		cmake \
17 18
 		gcc \
18 19
 		git \
19 20
 		libapparmor-dev \
... ...
@@ -28,6 +29,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
28 28
 		xz-utils \
29 29
 		\
30 30
 		aufs-tools \
31
+		vim-common \
31 32
 	&& rm -rf /var/lib/apt/lists/*
32 33
 
33 34
 # Install seccomp: the version shipped in trusty is too old
... ...
@@ -56,10 +58,10 @@ ENV PATH /go/bin:/usr/local/go/bin:$PATH
56 56
 ENV GOPATH /go
57 57
 ENV CGO_LDFLAGS -L/lib
58 58
 
59
-# Install runc, containerd, grimes and docker-proxy
59
+# Install runc, containerd, tini and docker-proxy
60 60
 # Please edit hack/dockerfile/install-binaries.sh to update them.
61 61
 COPY hack/dockerfile/install-binaries.sh /tmp/install-binaries.sh
62
-RUN /tmp/install-binaries.sh runc containerd grimes proxy
62
+RUN /tmp/install-binaries.sh runc containerd tini proxy
63 63
 
64 64
 ENV AUTO_GOPATH 1
65 65
 WORKDIR /usr/src/docker
... ...
@@ -5,7 +5,7 @@ set -x
5 5
 TOMLV_COMMIT=9baf8a8a9f2ed20a8e54160840c492f937eeaf9a
6 6
 RUNC_COMMIT=ac031b5bf1cc92239461125f4c1ffb760522bbf2
7 7
 CONTAINERD_COMMIT=8517738ba4b82aff5662c97ca4627e7e4d03b531
8
-GRIMES_COMMIT=fe069a03affd2547fdb05e5b8b07202d2e41735b
8
+TINI_COMMIT=v0.13.0
9 9
 LIBNETWORK_COMMIT=0f534354b813003a754606689722fe253101bc4e
10 10
 VNDR_COMMIT=f56bd4504b4fad07a357913687fb652ee54bb3b0
11 11
 
... ...
@@ -77,13 +77,14 @@ do
77 77
 			install_containerd
78 78
 			;;
79 79
 
80
-		grimes)
81
-			echo "Install grimes version $GRIMES_COMMIT"
82
-			git clone https://github.com/crosbymichael/grimes.git "$GOPATH/grimes"
83
-			cd "$GOPATH/grimes"
84
-			git checkout -q "$GRIMES_COMMIT"
85
-			make
86
-			cp init /usr/local/bin/docker-init
80
+		tini)
81
+			echo "Install tini version $TINI_COMMIT"
82
+			git clone https://github.com/krallin/tini.git "$GOPATH/tini"
83
+			cd "$GOPATH/tini"
84
+			git checkout -q "$TINI_COMMIT"
85
+			cmake -DMINIMAL=ON .
86
+			make tini-static
87
+			cp tini-static /usr/local/bin/docker-init
87 88
 			;;
88 89
 
89 90
 		proxy)
... ...
@@ -104,7 +105,7 @@ do
104 104
 			;;
105 105
 
106 106
 		*)
107
-			echo echo "Usage: $0 [tomlv|runc|containerd|grimes|proxy]"
107
+			echo echo "Usage: $0 [tomlv|runc|containerd|tini|proxy]"
108 108
 			exit 1
109 109
 
110 110
 	esac
... ...
@@ -138,7 +138,7 @@ install -p -m 755 /usr/local/bin/docker-containerd-ctr $RPM_BUILD_ROOT/%{_bindir
138 138
 # install runc
139 139
 install -p -m 755 /usr/local/bin/docker-runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc
140 140
 
141
-# install grimes
141
+# install tini
142 142
 install -p -m 755 /usr/local/bin/docker-init $RPM_BUILD_ROOT/%{_bindir}/docker-init
143 143
 
144 144
 # install udev rules
... ...
@@ -73,8 +73,8 @@ set -e
73 73
 		EOF
74 74
 
75 75
 		cat >> "$DEST/$version/Dockerfile.build" <<-EOF
76
-			# Install runc, containerd, proxy and grimes
77
-			RUN ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic grimes
76
+			# Install runc, containerd, proxy and tini
77
+			RUN ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic tini
78 78
 		EOF
79 79
 		cat >> "$DEST/$version/Dockerfile.build" <<-EOF
80 80
 			RUN cp -aL hack/make/.build-deb debian
... ...
@@ -94,8 +94,8 @@ set -e
94 94
 		EOF
95 95
 
96 96
 		cat >> "$DEST/$version/Dockerfile.build" <<-EOF
97
-			# Install runc, containerd, proxy and grimes
98
-			RUN TMP_GOPATH="/go" ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic grimes
97
+			# Install runc, containerd, proxy and tini
98
+			RUN TMP_GOPATH="/go" ./hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic tini
99 99
 		EOF
100 100
 		if [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then
101 101
 			echo 'ENV DOCKER_EXPERIMENTAL 1' >> "$DEST/$version/Dockerfile.build"
... ...
@@ -110,7 +110,7 @@ set -e
110 110
 			RUN tar --exclude .git -r -C /go/src/github.com/docker -f /root/rpmbuild/SOURCES/${rpmName}.tar containerd
111 111
 			RUN tar --exclude .git -r -C /go/src/github.com/docker/libnetwork/cmd -f /root/rpmbuild/SOURCES/${rpmName}.tar proxy
112 112
 			RUN tar --exclude .git -r -C /go/src/github.com/opencontainers -f /root/rpmbuild/SOURCES/${rpmName}.tar runc
113
-			RUN tar --exclude .git -r -C /go/ -f /root/rpmbuild/SOURCES/${rpmName}.tar grimes
113
+			RUN tar --exclude .git -r -C /go/ -f /root/rpmbuild/SOURCES/${rpmName}.tar tini
114 114
 			RUN gzip /root/rpmbuild/SOURCES/${rpmName}.tar
115 115
 			RUN { cat /usr/src/${rpmName}/contrib/builder/rpm/${PACKAGE_ARCH}/changelog; } >> ${rpmName}.spec && tail >&2 ${rpmName}.spec
116 116
 			RUN rpmbuild -ba \
... ...
@@ -154,7 +154,7 @@ func (d *Daemon) StartWithLogFile(out *os.File, providedArgs ...string) error {
154 154
 		fmt.Sprintf("--userland-proxy=%t", d.userlandProxy),
155 155
 	)
156 156
 	if experimentalDaemon {
157
-		args = append(args, "--experimental")
157
+		args = append(args, "--experimental", "--init")
158 158
 	}
159 159
 	if !(d.useDefaultHost || d.useDefaultTLSHost) {
160 160
 		args = append(args, []string{"--host", d.sock()}...)