entrypoint.sh 854 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/bin/bash
  2. set -e
  3. # Variables esperadas:
  4. # SSH_HOST
  5. # SSH_USER
  6. # SSH_PASSWORD (solo para el primer copiado de la clave)
  7. # SSH_PORT (opcional, default 22)
  8. SSH_PORT=${SSH_PORT:-22}
  9. KEY_PATH="/root/.ssh/id_rsa"
  10. # Generar clave si no existe
  11. if [ ! -f "$KEY_PATH" ]; then
  12. echo "Generando clave SSH..."
  13. ssh-keygen -t rsa -b 4096 -f "$KEY_PATH" -N ""
  14. fi
  15. # Copiar clave pública al servidor remoto
  16. echo "Copiando clave pública al servidor remoto..."
  17. sshpass -p "$SSH_PASSWORD" ssh-copy-id \
  18. -p "$SSH_PORT" \
  19. -o StrictHostKeyChecking=no \
  20. "${SSH_USER}@${SSH_HOST}"
  21. echo "Clave copiada correctamente."
  22. # Probar conexión
  23. echo "Probando conexión SSH..."
  24. ssh -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo 'Conexión SSH exitosa'"
  25. exec uvicorn app.main:app --host 0.0.0.0 --port 8000
  26. # Mantener el contenedor vivo (opcional)
  27. exec "$@"