Add full integration test with real Technitium DNS server
- 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
This commit is contained in:
69
docker-compose.integration.yml
Normal file
69
docker-compose.integration.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
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
|
||||
Reference in New Issue
Block a user