4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / docker-compose.yml YML
services:
  bind-dns:
    # Instead of 'image', we now use 'build' to build our custom image
    build:
      context: ./docker/bind-vulnerable-build # Path to the directory containing the Dockerfile
      dockerfile: Dockerfile                  # Name of the Dockerfile
    container_name: vulnerable_bind
    ports:
      - "53530:53/udp" # Expose DNS port for host access on 53530
      - "53530:53/tcp"
    volumes:
      # We are now baking named.conf into the image, so no need to mount it here
      # If you *wanted* to modify named.conf without rebuilding, you could keep this
      # - ./docker/bind-vulnerable-build/config/named.conf:/etc/bind/named.conf
      # But for simplicity, we'll bake it in for now.
      # We might want persistent storage for cache and logs if debugging later:
      - bind_cache:/var/cache/bind
      - bind_logs:/var/log/bind
    environment:
      - TZ=America/New_York
    cap_add:
      - NET_ADMIN # Needed for some DNS operations
    networks:
      - project_network

  secrets-manager:
    build:
      context: ./secrets-manager-mock # Points to the directory containing its Dockerfile and app
    container_name: mock_secrets_manager
    ports:
      - "8200:8200" # Simulate Vault's default port
    environment:
      MOCK_DNS_SERVER: vulnerable_bind # Use service name for internal Docker DNS resolution
    networks:
      - project_network
    depends_on:
      - bind-dns

  api-service:
    build:
      context: ./api-service-mock # Create this directory and its files
    container_name: mock_api_service
    ports:
      - "5000:5000"
    networks:
      - project_network
    depends_on:
      - secrets-manager # Assumed dependency on secrets manager for its function

networks:
  project_network:
    driver: bridge

# Define volumes for persistence
volumes:
  bind_cache:
  bind_logs: