mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
Our `docker-compose.yml` file has grown to a degree where it is almost unmanageable. Docker compose offers several tools to deal with complex compose setups, like include files and yaml anchors. We refactor our setup using these tools to organise these services and their configuration a bit better.
61 lines
1.5 KiB
YAML
61 lines
1.5 KiB
YAML
services:
|
|
httpbin:
|
|
image: kennethreitz/httpbin
|
|
# Needed to bind to IPv6
|
|
command: ["gunicorn", "-b", "[::]:80", "httpbin:app"]
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "ps -C gunicorn"]
|
|
networks:
|
|
resources:
|
|
ipv4_address: 172.20.0.100
|
|
ipv6_address: 172:20:0::100
|
|
|
|
download.httpbin: # Named after `httpbin` because that is how DNS resources are configured for the test setup.
|
|
build:
|
|
target: ${DOCKER_BUILD_TARGET:-debug}
|
|
context: rust
|
|
dockerfile: Dockerfile
|
|
args:
|
|
PACKAGE: http-test-server
|
|
image: ${HTTP_TEST_SERVER_IMAGE:-ghcr.io/firezone/debug/http-test-server}:${HTTP_TEST_SERVER_TAG:-main}
|
|
environment:
|
|
PORT: 80
|
|
networks:
|
|
dns_resources:
|
|
ipv4_address: 172.21.0.101
|
|
|
|
dns.httpbin.search.test:
|
|
image: kennethreitz/httpbin
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "ps -C gunicorn"]
|
|
networks:
|
|
dns_resources:
|
|
ipv4_address: 172.21.0.100
|
|
|
|
iperf3:
|
|
image: mlabbe/iperf3
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD-SHELL",
|
|
"(cat /proc/net/tcp | grep 5201) && (cat /proc/net/udp | grep 5201)",
|
|
]
|
|
command: -s -V
|
|
networks:
|
|
resources:
|
|
ipv4_address: 172.20.0.110
|
|
ipv6_address: 172:20:0::110
|
|
|
|
networks:
|
|
dns_resources:
|
|
ipam:
|
|
config:
|
|
- subnet: 172.21.0.0/24
|
|
|
|
resources:
|
|
enable_ipv6: true
|
|
ipam:
|
|
config:
|
|
- subnet: 172.20.0.0/24
|
|
- subnet: 172:20:0::/64
|