Docker

Implemente FoxIDs en Docker Desktop en una máquina de dev o test.

Esto describe cómo realizar un despliegue predeterminado y iniciar sesión por primera vez.

Una instalación de FoxIDs es autocontenida, tiene pocas dependencias externas y puede lograr una disponibilidad muy alta con poco esfuerzo. FoxIDs se actualiza actualizando las dos imágenes Docker www.foxids.com/foxids:x.x.x y www.foxids.com/foxidscontrol:x.x.x a una nueva versión. Las nuevas versiones de FoxIDs son backward compatible. Revise las notas de versión antes de actualizar. Allí también puede encontrar la versión actual de la imagen Docker.

Se requiere una licencia válida para acceder a las versiones de FoxIDs. Desde allí, puede generar un secret para autenticarse en el registro de imágenes Docker en www.foxids.com, que usa autenticación Basic.

Requisitos previos:

  • Tiene Docker Desktop instalado.
  • Tiene conocimientos básicos sobre Docker.

Esta es una lista de comandos útiles al final de esta descripción.

Este despliegue incluye:

  • Dos sitios web, uno para FoxIDs y otro para FoxIDs Control (the admin Client y API) en dos imágenes Docker www.foxids.com/foxids:x.x.x y www.foxids.com/foxidscontrol:x.x.x.
  • Los dos sitios web están expuestos en dos puertos diferentes.
  • MongoDB es una base de datos NoSQL y contiene todos los datos, incluidos tenants, entornos y usuarios. Desplegado con la imagen oficial de Docker MongoDB.
  • La caché Redis mantiene secuencias (p. ej., login y logout), caché de datos para mejorar el rendimiento y maneja contadores para asegurar la autenticación contra diversas ataques. Desplegado con la imagen oficial de Docker Redis.
  • Los logs se escriben en stdout donde Docker puede recogerlos.

Opcionalmente use PostgreSQL en lugar de MongoDB y opcionalmente prescinda de Redis y guarde los datos de caché en la base de datos (MongoDB o PostgreSQL). Sin caché Redis debe seleccionar None como data cache.

Despliegue

El despliegue se realiza en el orden descrito.

Prepararse

Descargue los archivos de configuración Docker yaml aquí y colóquelos en una carpeta en su equipo, por ejemplo C:\FoxIDs\Docker.

Abra una consola y navegue a la carpeta Docker.

Volumen

El archivo docker-compose-image.yaml define un volumen de MongoDB llamado foxids-data.

De forma predeterminada, Docker Compose crea y administra el volumen por usted.

Si desea guardar los datos de MongoDB en el sistema de archivos del host Windows, cree primero la carpeta del host, por ejemplo C:\data\foxids-data, y luego cree un volumen Docker externo:

docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data

Después quite el comentario de external: true bajo volumes: foxids-data: en docker-compose-image.yaml para que Docker Compose use el volumen externo.

Desplegar contenedores

Los dos sitios web de FoxIDs se configuran con las imágenes Docker. Y opcionalmente se configuran para usar solo HTTP o HTTP/HTTPS con un certificado de desarrollo. Las imágenes oficiales de MongoDB y Redis se descargan desde Docker Hub.

Pull secret y setup de Docker Configure el nombre de usuario con su ID de cliente y la contraseña con su pull secret para el registro Docker de FoxIDs, y luego autentique Docker.

docker login www.foxids.com --username <customer-id> --password <pull-secret>

Actualice C:\src\GitHub\FoxIDs.Assets\Docker\docker-compose-image.yaml:

services:
  foxids:
    image: www.foxids.com/foxids:x.x.x
  foxids-control:
    image: www.foxids.com/foxidscontrol:x.x.x

Seleccione la versión en versiones de FoxIDs, y después descargue las imágenes:

docker compose -f docker-compose-image.yaml pull

Proveedor de correo Puede configurar un proveedor de correo global o más tarde configurar proveedores de correo por entorno. FoxIDs admite enviar correos con SendGrid y SMTP.

El proveedor de correo global se configura en el archivo docker-compose-image.yaml en el servicio foxids en la sección environment:. Este ejemplo muestra cómo agregar Outlook / Microsoft 365 con SMTP:

- Settings:Smtp:FromEmail=my@email-address.org
- Settings:Smtp:FromName=e.g., my company name
- Settings:Smtp:Host=smtp.office365.com
- Settings:Smtp:Port=587
- Settings:Smtp:Username=my@email-address.com
- Settings:Smtp:Password=xxxxxxx

Desplegar Cree el despliegue con imágenes Docker y HTTP:

  1. Basado en imágenes Docker y con HTTP
docker compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
  1. Basado en imágenes Docker y con HTTP/HTTPS - requiere un certificado de desarrollo exportado.

El archivo compose HTTPS asigna %APPDATA%\ASP.NET\Https en el host Windows a /home/app/.aspnet/https en los contenedores y configura Kestrel para cargar dev_cert.pfx. Cree la carpeta y exporte el certificado de desarrollo de .NET antes de iniciar el despliegue:

if not exist "%APPDATA%\ASP.NET\Https" mkdir "%APPDATA%\ASP.NET\Https"
dotnet dev-certs https --trust
dotnet dev-certs https --export-path "%APPDATA%\ASP.NET\Https\dev_cert.pfx" -p "foxids-dev-cert"

La contraseña debe coincidir con ASPNETCORE_Kestrel__Certificates__Default__Password en docker-compose.development-https.yaml.

docker compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml up -d

Primer inicio de sesión

Abra su sitio FoxIDs Control (http://localhost:8801 o https://localhost:8401) en un navegador. Debe redirigir al sitio FoxIDs donde inicia sesión con el usuario admin predeterminado admin@foxids.com y la contraseña FirstAccess! (debe cambiar la contraseña en el primer inicio de sesión). Luego se le redirige de vuelta al sitio FoxIDs Control en el tenant master. Puede agregar más administradores en el tenant master.

Luego haga clic en el tenant main e inicie sesión nuevamente con el mismo usuario admin predeterminado admin@foxids.com y la contraseña FirstAccess! (de nuevo, debe cambiar la contraseña).

El usuario admin predeterminado y la contraseña son los mismos para el tenant master y el tenant main, pero son dos usuarios diferentes.

Ahora ha iniciado sesión en el tenant main y puede comenzar a configurar sus aplicaciones y métodos de autenticación.

Comandos útiles

Esta es una lista de comandos que pueden ser útiles durante el despliegue para ver detalles y realizar cambios.

Destruir el despliegue

docker compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# o
docker compose -f docker-compose-image.yaml -f docker-compose.development-https.yaml down

Detener contenedor

docker stop xxx

Eliminar contenedor

docker rm xxx

Eliminar imagen

docker rmi xxx

Listar volúmenes

docker volume ls

Eliminar volumen

docker volume rm xxx

Eliminar todos los volúmenes no utilizados

docker volume prune

Mostrar logs en contenedor

docker logs xxx
Tu privacidad

Tu privacidad

Usamos cookies para mejorar tu experiencia en nuestros sitios web. Haz clic en «Aceptar todas las cookies» para aceptar su uso. Para rechazar cookies no esenciales, haz clic en «Solo cookies necesarias».

Visita nuestra política de privacidad para saber más