FROM alpine:latest

# Instalar OpenVPN, curl y herramientas de red
RUN apk update && apk add --no-cache \
    openvpn \
    curl \
    iputils \
    iptables \
    bash \
    bind-tools \
    openresolv

# Crear directorio para archivos de configuración
RUN mkdir -p /etc/openvpn

# Copiar el archivo de configuración de OpenVPN
COPY your-config.ovpn /etc/openvpn/client.conf

# Script de inicio mejorado con DNS y logging
RUN echo '#!/bin/bash' > /start.sh && \
    echo 'set -e' >> /start.sh && \
    echo 'echo "=== Iniciando OpenVPN con DNS ==="' >> /start.sh && \
    echo 'openvpn --config /etc/openvpn/client.conf --script-security 2 --up /etc/openvpn/up.sh --down /etc/openvpn/down.sh --daemon' >> /start.sh && \
    echo 'sleep 15' >> /start.sh && \
    echo 'echo "=== Configurando DNS para red privada ==="' >> /start.sh && \
    echo '# Probar IPs conocidas y agregar la que funciona' >> /start.sh && \
    echo 'for ip in 10.0.5.239 10.0.6.132 10.0.4.119; do' >> /start.sh && \
    echo '  if curl -s --connect-timeout 3 http://$ip/ping | grep -q pong; then' >> /start.sh && \
    echo '    echo "$ip dienst-api.vue.com" >> /etc/hosts' >> /start.sh && \
    echo '    echo "DNS manual configurado para $ip"' >> /start.sh && \
    echo '    break' >> /start.sh && \
    echo '  fi' >> /start.sh && \
    echo 'done' >> /start.sh && \
    echo 'echo "Probando conectividad final..."' >> /start.sh && \
    echo 'curl --connect-timeout 10 --location "http://dienst-api.vue.com/ping" && echo "✅ VPN OK" || echo "❌ VPN FALLO"' >> /start.sh && \
    echo 'echo "Manteniendo contenedor activo..."' >> /start.sh && \
    echo 'tail -f /dev/null' >> /start.sh && \
    chmod +x /start.sh

# Exponer puerto si es necesario (opcional)
# EXPOSE 1194

CMD ["/start.sh"]