1
0
mirror of https://github.com/thib8956/nginx-proxy synced 2025-02-24 01:38:15 +00:00

test: ipv6 docker networks

This commit is contained in:
Nicolas Duchon 2024-05-15 20:28:08 +02:00
parent 5aea820aaa
commit dcc97b9cff
7 changed files with 133 additions and 0 deletions

View File

@ -36,6 +36,9 @@ jobs:
pip install -r python-requirements.txt pip install -r python-requirements.txt
working-directory: test/requirements working-directory: test/requirements
- name: Pull nginx:alpine image
run: docker pull nginx:alpine
- name: Build Docker web server image - name: Build Docker web server image
run: make build-webserver run: make build-webserver

View File

@ -0,0 +1,19 @@
import pytest
def test_forwards_to_ipv4_only_network(docker_compose, nginxproxy):
r = nginxproxy.get("http://ipv4only.nginx-proxy.tld/port")
assert r.status_code == 200
assert r.text == "answer from port 80\n"
def test_forwards_to_dualstack_network(docker_compose, nginxproxy):
r = nginxproxy.get("http://dualstack.nginx-proxy.tld")
assert r.status_code == 200
assert "Welcome to nginx!" in r.text
def test_dualstack_network_prefer_ipv4_config(docker_compose, nginxproxy):
conf = nginxproxy.get_conf().decode('ASCII')
assert "IPv6 address: fd00:cafe:face:feed::2 (ignored; reachable but IPv4 prefered)" in conf
assert "server 172.16.20.2:80;" in conf

View File

@ -0,0 +1,45 @@
version: "2"
networks:
ipv4net:
ipam:
config:
- subnet: 172.16.10.0/24
dualstacknet:
enable_ipv6: true
ipam:
config:
- subnet: 172.16.20.0/24
- subnet: fd00:cafe:face:feed::/64
services:
ipv4only:
image: web
expose:
- "80"
environment:
WEB_PORTS: 80
VIRTUAL_HOST: ipv4only.nginx-proxy.tld
networks:
ipv4net:
ipv4_address: 172.16.10.2
dualstack:
image: nginx:alpine
environment:
VIRTUAL_HOST: dualstack.nginx-proxy.tld
networks:
dualstacknet:
ipv4_address: 172.16.20.2
ipv6_address: fd00:cafe:face:feed::2
sut:
image: nginxproxy/nginx-proxy:test
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
ipv4net:
ipv4_address: 172.16.10.3
dualstacknet:
ipv4_address: 172.16.20.3
ipv6_address: fd00:cafe:face:feed::3

View File

@ -0,0 +1,19 @@
import pytest
def test_forwards_to_ipv4_only_network(docker_compose, nginxproxy):
r = nginxproxy.get("http://ipv4only.nginx-proxy.tld/port")
assert r.status_code == 200
assert r.text == "answer from port 80\n"
def test_forwards_to_dualstack_network(docker_compose, nginxproxy):
r = nginxproxy.get("http://dualstack.nginx-proxy.tld")
assert r.status_code == 200
assert "Welcome to nginx!" in r.text
def test_dualstack_network_prefer_ipv6_config(docker_compose, nginxproxy):
conf = nginxproxy.get_conf().decode('ASCII')
assert "IPv4 address: 172.16.20.2 (ignored; reachable but IPv6 prefered)" in conf
assert "server [fd00:cafe:face:feed::2]:80;" in conf

View File

@ -0,0 +1,47 @@
version: "2"
networks:
ipv4net:
ipam:
config:
- subnet: 172.16.10.0/24
dualstacknet:
enable_ipv6: true
ipam:
config:
- subnet: 172.16.20.0/24
- subnet: fd00:cafe:face:feed::/64
services:
ipv4only:
image: web
expose:
- "80"
environment:
WEB_PORTS: 80
VIRTUAL_HOST: ipv4only.nginx-proxy.tld
networks:
ipv4net:
ipv4_address: 172.16.10.2
dualstack:
image: nginx:alpine
environment:
VIRTUAL_HOST: dualstack.nginx-proxy.tld
networks:
dualstacknet:
ipv4_address: 172.16.20.2
ipv6_address: fd00:cafe:face:feed::2
sut:
image: nginxproxy/nginx-proxy:test
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
environment:
PREFER_IPV6_NETWORK: "true"
networks:
ipv4net:
ipv4_address: 172.16.10.3
dualstacknet:
ipv4_address: 172.16.20.3
ipv6_address: fd00:cafe:face:feed::3