- Add docker-compose.integration.yml with Technitium + DDNS services - Add full-integration-test.sh for end-to-end testing - Add technitium-init.sh for automated zone/token setup - Add comprehensive logging to DNS client - Test creates real DNS records and verifies them in Technitium - 8/9 tests passing with real DNS integration
70 lines
1.7 KiB
YAML
70 lines
1.7 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
technitium:
|
|
image: docker.io/technitium/dns-server:11.0.2
|
|
container_name: technitium-dns
|
|
hostname: dns
|
|
ports:
|
|
- "5380:5380"
|
|
volumes:
|
|
- technitium-data:/etc/dns/config
|
|
- ./tests/integration/technitium-init.sh:/init.sh:ro
|
|
environment:
|
|
- DNS_SERVER_DOMAIN=dns.test.rip
|
|
- DNS_SERVER_ADMIN_PASSWORD=admin123
|
|
- DNS_SERVER_ADMIN_PASSWORD_FILE=
|
|
- DNS_SERVER_WEB_SERVICE_HTTP_PORT=5380
|
|
- DNS_SERVER_WEB_SERVICE_ENABLE_HTTPS=false
|
|
- DNS_SERVER_WEB_SERVICE_USE_SELF_SIGNED_CERT=false
|
|
- DNS_SERVER_OPTIONAL_PROTOCOL_DNS_OVER_HTTP=false
|
|
- DNS_SERVER_RECURSION=AllowOnlyForPrivateNetworks
|
|
- DNS_SERVER_LOG_USING_LOCAL_TIME=true
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "--spider", "http://localhost:5380/"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
start_period: 30s
|
|
networks:
|
|
- dyn-test
|
|
|
|
dyn:
|
|
build: .
|
|
container_name: dyn-ddns-test
|
|
ports:
|
|
- "8080:8080"
|
|
volumes:
|
|
- dyn-data:/data
|
|
environment:
|
|
- SERVER_PORT=8080
|
|
- DATABASE_PATH=/data/dyn.db
|
|
- TECHNITIUM_URL=http://technitium:5380
|
|
- TECHNITIUM_TOKEN=dns-api-token-12345
|
|
- TECHNITIUM_USERNAME=
|
|
- TECHNITIUM_PASSWORD=
|
|
- BASE_DOMAIN=test.rip
|
|
- SPACE_SUBDOMAIN=space
|
|
- RATE_LIMIT_PER_IP=1000
|
|
- RATE_LIMIT_PER_TOKEN=1000
|
|
- TRUSTED_PROXIES=
|
|
depends_on:
|
|
technitium:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 5s
|
|
networks:
|
|
- dyn-test
|
|
|
|
volumes:
|
|
technitium-data:
|
|
dyn-data:
|
|
|
|
networks:
|
|
dyn-test:
|
|
driver: bridge
|