21
21
22
22
# Create a new Docker network
23
23
nid=" $( docker network create --ipv6 --subnet fd0c:7e57::/64 nginx-test-ipv6-network) "
24
- trap " docker network rm -f $nid > /dev/null" EXIT
24
+
25
+ _network_exit_handler () {
26
+ docker network rm -f $nid > /dev/null
27
+ }
25
28
26
29
# Create an instance of the container-under-test
27
30
serverImage=" $( " $HOME /oi/test/tests/image-name.sh" librarytest/nginx-template " $image " ) "
@@ -30,7 +33,14 @@ FROM $image
30
33
COPY dir/server.conf.template /etc/nginx/templates/server.conf.template
31
34
EOD
32
35
cid=" $( docker run -d --network $nid -e NGINX_ENTRYPOINT_LOCAL_RESOLVERS=true -e NGINX_MY_SERVER_NAME=example.com " $serverImage " ) "
33
- trap " docker rm -vf $cid > /dev/null" EXIT
36
+
37
+ _container_exit_handler () {
38
+ docker rm -vf $cid > /dev/null
39
+ }
40
+ _exit_handler () { _container_exit_handler; _network_exit_handler; }
41
+ trap " _exit_handler" EXIT
42
+
43
+ ipv6cid=" $( docker inspect -f ' {{range.NetworkSettings.Networks}}{{.GlobalIPv6Address}}{{end}}' $cid ) "
34
44
35
45
_request () {
36
46
local method=" $1 "
@@ -49,12 +59,23 @@ _request() {
49
59
fi
50
60
51
61
docker run --rm \
52
- --link " $cid " :nginx \
62
+ --network " $nid " \
53
63
" $clientImage " \
54
- curl -fsSL -X" $method " --connect-to ' ::nginx: ' " $@ " " $proto ://example.com/$url "
64
+ curl -fsSL -X" $method " --connect-to " ::[ $ipv6cid ]: " " $@ " " $proto ://example.com/$url "
55
65
}
56
66
57
67
. " $HOME /oi/test/retry.sh" ' [ "$(_request GET / --output /dev/null || echo $?)" != 7 ]'
58
68
59
69
# Check that we can request /
60
70
_request GET http ' /resolver-templates' | grep ' example.com - OK'
71
+
72
+ result=" $( docker exec $cid grep resolver /etc/nginx/conf.d/server.conf) "
73
+
74
+ case " $result " in
75
+ resolver* \[ * \] * )
76
+ echo " ipv6 nameserver(s) present"
77
+ ;;
78
+ * )
79
+ echo " no ipv6 nameserver(s) present"
80
+ ;;
81
+ esac
0 commit comments