Una implementación de Jitsi Meet puede ejecutarse brevemente y luego mostrar uno o más servicios como "Reiniciando" en Docker Desktop o en Docker docker compose ps. Docker suele aplicar la política de reinicio configurada después de que un proceso finaliza. La solución definitiva consiste en identificar el servicio que finaliza, leer sus últimos registros y corregir el error de inicio. Reiniciar todo el sistema repetidamente o eliminar sus volúmenes puede ocultar evidencia o eliminar datos persistentes.
1. Localiza el servicio que se está reiniciando.
Ejecuta Compose desde el directorio que contiene el mismo archivo Compose que .envse usó para iniciar esta instalación. Si normalmente usas archivos Compose adicionales, perfiles o opciones --env-file, incluye esas mismas opciones.
docker compose ps -a
Compruebe cada servicio por separado. Los servicios principales son web, prosody, jicofo, y jvb; también pueden aparecer servicios opcionales como jibrio jigasi. Anote el servicio exacto cuyo estado es Restartingo Exited. Un servicio que falla no significa que todos los contenedores tengan el mismo fallo.
Lea el final del registro de ese servicio, utilizando marcas de tiempo:
docker compose logs --tail=150 --timestamps jicofo
Reemplazar jicofocon el servicio afectado. Agregar -fpara observar otro intento de inicio. La guía de Jitsi Docker documenta los registros de Compose para sus servicios. Si Docker no puede devolver registros, verifique si el controlador de registro configurado para ese contenedor admite su lectura.
2. Busca el primer mensaje fatal.
Desplácese hasta el primer error claro en cada ciclo de inicio. Las líneas posteriores pueden indicar simplemente que el proceso se detuvo y que Docker lo está reiniciando. Las causas raíz comunes incluyen:
- Contraseñas obligatorias faltantes: Jitsi eliminó las contraseñas predeterminadas para las cuentas de servicio internas, y los servicios que las necesitan no se iniciarán hasta que se configuren. Desde el directorio de implementación estándar, ejecute el
./gen-passwords.shscript proporcionado para completar los valores necesarios en .env. Proteja ese archivo y nunca publique sus secretos en una solicitud de soporte.
- Configuración no válida o ilegible: compruebe la ruta del archivo y la sintaxis indicadas en el error. Una configuración personalizada de Prosody, Jicofo o JVB podría impedir que se inicie dicho servicio.
- Directorio montado inexistente o con permisos de escritura limitados: verifique la ruta exacta del host en el error y compárela con la asignación de volumen del servicio. Evite modificar los permisos en todo el árbol de configuración.
- Un fallo en la imagen o en el punto de entrada: compruebe si el directorio de despliegue, el archivo Compose y las etiquetas de imagen pertenecen a versiones compatibles, especialmente si el bucle se inició después de una actualización.
- Presión de memoria: inspeccione el estado del contenedor y la memoria del host. Un error de falta de memoria requiere una solución diferente a la de una configuración incorrecta.
Una política de reinicio de Docker explica por qué un proceso se reanuda tras finalizar; no explica por qué finalizó. Considere esto Restartingcomo el síntoma y el registro de servicio como la evidencia.
3. Validar el entorno y los archivos Compose
Asegúrese de editar el archivo que Compose carga realmente. Un error común es modificar uno .envmientras Compose lee otro desde un directorio diferente o desde uno especificado explícitamente --env-file. Valide la configuración antes de recrear los contenedores:
docker compose config --quiet
Si Compose informa un error, corrija el YAML, la sustitución de variables, el archivo referenciado faltante o la opción que menciona. Ejecutarlo docker compose configsin editar --quietpuede ayudar a inspeccionar el modelo resuelto, pero podría imprimir contraseñas interpoladas. No comparta la salida sin editar.
Para una instalación estándar de Jitsi, compárela .envcon la env.examplede la misma versión y confirme que las contraseñas internas necesarias estén presentes. Si utiliza un archivo Compose personalizado, verifique que las variables necesarias lleguen al servicio correcto. Utilice el script de contraseña incluido en lugar de marcadores de posición vacíos. Si cambia una contraseña, mantenga la configuración del componente correspondiente sin cambios.
El proyecto Jitsi distingue entre archivos de versiones normales, código de desarrollo e imágenes inestables. Evite combinar un directorio Compose antiguo, etiquetas de imagen arbitrarias y archivos de versiones diferentes durante la resolución de problemas.
4. Compruebe la configuración de montajes y permisos.
Compare las entradas de volumen del servicio con las rutas de host reales. Un error tipográfico, CONFIGun valor inesperado o un directorio de trabajo de Compose diferente pueden provocar que la implementación utilice otro directorio de configuración.
Los permisos dependen de la versión de Jitsi. El manual indica que, a partir de la versión stable-11146, los contenedores se ejecutan como un usuario sin privilegios con un sistema de archivos de contenedor de solo lectura. Los directorios de configuración son entradas; los datos modificables se separan en directorios storagey tmp, que deben ser modificables por el UID/GID 1000. Las versiones anteriores utilizan una estructura diferente. Siga el manual de la versión que esté utilizando en lugar de reutilizar una configuración de permisos para una versión diferente.
Si el registro identifica un directorio que falta o no se puede escribir, repare esa ruta específica. No aplique comandos generales a chmod -R 777todo el directorio de configuración de Jitsi; esto puede debilitar la seguridad sin corregir la ruta montada.
5. Inspeccione el estado de salida y los cambios recientes.
Docker puede informar el código de salida de un contenedor, el estado de falta de memoria, el número de reinicios y el error del demonio. Primero, obtenga el ID del contenedor para el servicio que está fallando:
docker compose ps -q jicofo
Luego, sustituya el ID devuelto:
docker inspect --format '{{.State.Status}} exit={{.State.ExitCode}} oom={{.State.OOMKilled}} restarts={{.RestartCount}} error={{.State.Error}}' CONTAINER_ID
Un número creciente de reinicios confirma los intentos repetidos. Si es así oom=true, compruebe los límites de memoria del host o contenedor y los registros del sistema. Un código de salida distinto de cero por sí solo no constituye un diagnóstico; compárelo con el registro del servicio.
Si el bucle se inició tras una actualización, anote qué cambió: archivos de lanzamiento, etiquetas de imagen, contraseña, montaje de enlace o configuración personalizada. Realice una copia de seguridad de la configuración y los datos persistentes antes de cambiar de versión. Restaure un conjunto compatible de archivos e imágenes de Compose o siga las instrucciones de actualización de Jitsi. Los problemas de red y de firewall pueden impedir que los participantes se conecten, pero no suelen explicar por qué un proceso de servicio finaliza repetidamente; distinga un fallo de arranque de un problema de conectividad de medios.
6. Recree el servicio después de solucionar la causa.
Tras modificar un valor de entorno o una definición de Compose, vuelva a crear el servicio afectado para aplicar la nueva configuración:
docker compose up -d --force-recreate jicofo
Sustituya el nombre del servicio. Si un cambio de configuración compartida afecta a varios componentes, vuelva a crear los servicios correspondientes. A continuación, revise de nuevo el estado y los registros. Un simple reinicio no aplica todos los cambios de Compose o del entorno, mientras que recrear toda la pila puede interrumpir las reuniones activas.
No lo utilice docker compose down -vcomo solución genérica para bucles de reinicio. Esta -vopción elimina los volúmenes gestionados por Compose y podría borrar datos que pretendía conservar. Guarde los registros y compruebe los puntos de montaje antes de eliminar contenedores o datos.
Verificar la solución
Compruebe el estado, espere durante varios intervalos de inicio normales y vuelva a comprobarlo:
docker compose ps
docker compose logs --tail=100 --timestamps jicofo
El servicio afectado debería permanecer activo, su contador de reinicios debería dejar de aumentar y su registro ya no debería mostrar el mismo mensaje de error grave. Confirme que la página web se carga y realice una reunión de prueba con dos clientes. Si los servicios siguen funcionando, pero los participantes no pueden intercambiar audio ni vídeo, revise la configuración de red, las reglas del cortafuegos y la dirección JVB anunciada en el manual de Jitsi.
Para más información, consulte la guía de autoalojamiento de Jitsi Meet Docker , el ejemplo de variables de entorno del proyecto , la documentación de la política de reinicio de Docker , la referencia de los registros de Compose y la referencia de la inspección de contenedores .