Browse code

Update emptyfs support to work properly if scratch is already an image

Also, this decouples the emptyfs script from the busybox one -- they're now functionally separate thanks to the scratch no-op change. :+1:

Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>

Tianon Gravi authored on 2015/01/21 05:53:24
Showing 4 changed files
... ...
@@ -1,8 +1,8 @@
1 1
 #!/bin/bash
2
+set -e
2 3
 
3 4
 if ! docker inspect busybox &> /dev/null; then
4 5
 	if [ -d /docker-busybox ]; then
5
-		source "$(dirname "$BASH_SOURCE")/.ensure-scratch"
6 6
 		( set -x; docker build -t busybox /docker-busybox )
7 7
 	else
8 8
 		( set -x; docker pull busybox )
9 9
new file mode 100644
... ...
@@ -0,0 +1,22 @@
0
+#!/bin/bash
1
+set -e
2
+
3
+if ! docker inspect emptyfs &> /dev/null; then
4
+	# let's build a "docker save" tarball for "emptyfs"
5
+	# see https://github.com/docker/docker/pull/5262
6
+	# and also https://github.com/docker/docker/issues/4242
7
+	dir="$(mktemp -d)"
8
+	(
9
+		cd "$dir"
10
+		echo '{"emptyfs":{"latest":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158"}}' > repositories
11
+		mkdir -p 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
12
+		(
13
+			cd 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
14
+			echo '{"id":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158","comment":"Imported from -","created":"2013-06-13T14:03:50.821769-07:00","container_config":{"Hostname":"","Domainname":"","User":"","Memory":0,"MemorySwap":0,"CpuShares":0,"AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"PortSpecs":null,"ExposedPorts":null,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":null,"Image":"","Volumes":null,"WorkingDir":"","Entrypoint":null,"NetworkDisabled":false,"OnBuild":null},"docker_version":"0.4.0","architecture":"x86_64","Size":0}' > json
15
+			echo '1.0' > VERSION
16
+			tar -cf layer.tar --files-from /dev/null
17
+		)
18
+	)
19
+	( set -x; tar -cC "$dir" . | docker load )
20
+	rm -rf "$dir"
21
+fi
0 22
deleted file mode 100644
... ...
@@ -1,21 +0,0 @@
1
-#!/bin/bash
2
-
3
-if ! docker inspect scratch &> /dev/null; then
4
-	# let's build a "docker save" tarball for "emptyfs"
5
-	# see https://github.com/docker/docker/pull/5262
6
-	# and also https://github.com/docker/docker/issues/4242
7
-	mkdir -p /docker-scratch
8
-	(
9
-		cd /docker-scratch
10
-		echo '{"emptyfs":{"latest":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158"}}' > repositories
11
-		mkdir -p 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
12
-		(
13
-			cd 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158
14
-			echo '{"id":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158","comment":"Imported from -","created":"2013-06-13T14:03:50.821769-07:00","container_config":{"Hostname":"","Domainname":"","User":"","Memory":0,"MemorySwap":0,"CpuShares":0,"AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"PortSpecs":null,"ExposedPorts":null,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":null,"Image":"","Volumes":null,"WorkingDir":"","Entrypoint":null,"NetworkDisabled":false,"OnBuild":null},"docker_version":"0.4.0","architecture":"x86_64","Size":0}' > json
15
-			echo '1.0' > VERSION
16
-			tar -cf layer.tar --files-from /dev/null
17
-		)
18
-	)
19
-	( set -x; tar -cf /docker-scratch.tar -C /docker-scratch . )
20
-	( set -x; docker load --input /docker-scratch.tar )
21
-fi
... ...
@@ -20,6 +20,7 @@ bundle_test_integration_cli() {
20 20
 		sleep 2
21 21
 
22 22
 		source "$(dirname "$BASH_SOURCE")/.ensure-busybox"
23
+		source "$(dirname "$BASH_SOURCE")/.ensure-emptyfs"
23 24
 
24 25
 		bundle_test_integration_cli
25 26
 	}; then