Przeglądaj źródła

Add a short test to verify basic push/pull functionality with a registry

Tianon Gravi 8 lat temu
rodzic
commit
94fb6ed275
2 zmienionych plików z 71 dodań i 0 usunięć
  1. 4 0
      test/config.sh
  2. 67 0
      test/tests/docker-registry-push-pull/run.sh

+ 4 - 0
test/config.sh

@@ -53,6 +53,7 @@ imageTests+=(
 	'
 	[docker:dind]='
 		docker-dind
+		docker-registry-push-pull
 	'
 	[django]='
 	'
@@ -159,6 +160,9 @@ imageTests+=(
 		redis-basics-config
 		redis-basics-persistent
 	'
+	[registry]='
+		docker-registry-push-pull
+	'
 	[rethinkdb]='
 	'
 	[ruby]='

+ 67 - 0
test/tests/docker-registry-push-pull/run.sh

@@ -0,0 +1,67 @@
+#!/bin/bash
+set -eo pipefail
+
+dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
+
+image="$1"
+case "${image##*/}" in
+	docker:*dind*)
+		dockerImage="$image"
+		registryImage='registry'
+		;;
+	registry:*|registry)
+		registryImage="$image"
+		dockerImage='docker:dind'
+		;;
+	*)
+		echo >&2 "error: unable to determine whether '$image' is registry or docker:dind"
+		exit 1
+		;;
+esac
+
+rhostname='reg.example.com'
+rnamespace="${rhostname}:5000"
+
+rcname="docker-registry-container-$RANDOM-$RANDOM"
+rcid="$(
+	docker run -d -it \
+		--hostname "$rhostname" \
+		--name "$rcname" \
+		"$registryImage"
+)"
+trap "docker rm -vf $rcid > /dev/null" EXIT
+
+dcname="docker-daemon-container-$RANDOM-$RANDOM"
+dcid="$(
+	docker run -d -it \
+		--privileged \
+		--link "$rcid":"$rhostname" \
+		--name "$dcname" \
+		"$dockerImage" \
+		--insecure-registry "$rnamespace"
+)"
+trap "docker rm -vf $rcid $dcid > /dev/null" EXIT
+
+docker_() {
+	docker run --rm -i \
+		--link "$dcid":docker \
+		--entrypoint docker-entrypoint.sh \
+		"$dockerImage" \
+		"$@"
+}
+
+. "$dir/../../retry.sh" 'docker_ version'
+
+[ "$(docker_ images -q | wc -l)" = '0' ]
+docker_ pull busybox
+[ "$(docker_ images -q | wc -l)" = '1' ]
+
+docker_ tag busybox "$rnamespace/busybox"
+docker_ push "$rnamespace/busybox"
+
+docker_ rmi busybox "$rnamespace/busybox"
+[ "$(docker_ images -q | wc -l)" = '0' ]
+docker_ pull "$rnamespace/busybox"
+[ "$(docker_ images -q | wc -l)" = '1' ]
+
+docker_ run --rm "$rnamespace/busybox" true