Si ZimaOS rechaza un archivo de Docker Compose durante Instalar una aplicación personalizada → Importar, no des por hecho que la instalación de ZimaOS está dañada. En el caso de la comunidad de septiembre de 2025, reinstalar ZimaOS y volver a intentarlo en un navegador de incógnito no cambió nada. El problema real era el YAML de Compose guardado: el formato se había dañado al copiarlo en las notas y la definición exportada contenía más complejidad de la que la aplicación necesitaba.
El usuario corrigió el YAML, simplificó el servicio de Syncthing y confirmó que el problema de importación se había resuelto. El hilo también destaca un caso de uso importante de ZimaOS: opciones como tmpfs puede no tener un campo específico en el editor visual, por lo que la importación de Compose sigue siendo necesaria para configuraciones avanzadas de contenedores.
Qué aspecto tenía el error de importación
El usuario original ejecutaba ZimaOS 1.4.3 en un Beelink Mini y descubrió que una aplicación personalizada exportada anteriormente ya no se importaba después de una reinstalación limpia.
Valida el YAML antes de solucionar problemas de ZimaOS
YAML distingue la indentación. Un solo nivel desplazado por una aplicación de notas puede convertir un Compose válido en una estructura completamente diferente.
El autor original finalmente se dio cuenta de que la exportación guardada tenía un formato incorrecto. Su flujo de trabajo para tomar notas había alterado la estructura después de copiar el archivo Compose de la instalación antigua de ZimaOS.
Antes de cambiar el host de ZimaOS:
- pega el archivo Compose en un validador de YAML/Compose;
- usa espacios, no tabulaciones;
- comprueba la indentación de cada elemento de lista y propiedad secundaria;
- confirma que cada montaje de enlace tenga un destino en el contenedor;
- elimina las claves duplicadas;
- compara el resultado con la especificación actual de Docker Compose.
Un montaje de enlace completo necesita tanto el origen como el destino
Un montaje de enlace válido en formato largo tiene este aspecto:
volumes:
- type: bind
source: /DATA/AppData/syncthing/data
target: /var/syncthing
Docker Compose también admite actualmente configuraciones de enlace opcionales, como:
enlace:
create_host_path: true
El requisito principal es que la estructura YAML sea válida y que origen y destino están anidados bajo la misma entrada de montaje.
Las referencias de los servicios de Docker Compose
La sintaxis larga de puertos es válida, pero mantenla sencilla
La exportación antigua contenía entradas de puertos detalladas como:
puertos:
- target: 8384
published: "8384"
protocol: tcp
mode: ingress
El Docker Compose actual sí define modo en la sintaxis larga de puertos, principalmente para el comportamiento de publicación de Swarm. Eso significa que la clave en sí no es universalmente inválida en Compose.
Sin embargo, el importador de ZimaOS de 2025 y el YAML exportado dañado no gestionaban correctamente la estructura guardada. Para un servicio normal de ZimaOS en un solo host, la sintaxis más sencilla suele ser más fácil de validar:
puertos:
- "8384:8384"
- "22000:22000/tcp"
- "22000:22000/udp"
- "21027:21027/udp"
Usa la forma larga más avanzada solo cuando realmente necesites sus opciones.
Usa correctamente la red del host
Si la aplicación necesita la red del host de Docker, Compose proporciona:
network_mode: host
No combines network_mode con un las redes list para el mismo servicio; el Docker Compose actual rechaza esa combinación.
Esto es diferente de definir una red normal creada por el usuario llamada host.
tmpfs es una función válida de Docker Compose
La aplicación del autor original requería:
tmpfs:
- /run
El Docker Compose actual admite explícitamente tmpfs montajes. También puede aceptar opciones:
tmpfs:
- /run
- /data:mode=755,uid=1000,gid=1000
En la versión de ZimaOS de origen, el formulario visual de aplicaciones personalizadas no proporcionaba un campo para esta opción, por lo que el usuario necesitaba importar mediante Compose en lugar de introducir cada configuración manualmente.
ZimaOS todavía admite la importación de Docker Compose
La documentación actual de ZimaOS describe este flujo de trabajo:
- abre el panel;
- elige Instalar una aplicación personalizada;
- haz clic en Importar;
- abre la pestaña Docker Compose;
- pega el YAML;
- envía y revisa la configuración generada antes de la instalación.
Documentación de aplicaciones personalizadas de ZimaOS
Cómo se veía el Compose incorrecto y cómo quedó corregido
Una estructura más sencilla para Syncthing
Una estructura limpia para un solo host podría ser conceptualmente así:
services:
syncthing:
image: syncthing/syncthing:2.0
container_name: syncthing
restart: unless-stopped
network_mode: host
environment:
- PUID=1000
- PGID=1000
volumes:
- /DATA/AppData/syncthing/data:/var/syncthing
- /media/SLOT4/Syncthing:/media/data/syncthing
tmpfs:
- /run
Usa el PUID/PGID, las rutas, la configuración de red y la etiqueta de imagen adecuados para tu propia implementación. El hilo original utilizaba identificadores de root durante la resolución del problema, pero eso no significa que debas ejecutar como root todos los contenedores de Syncthing.
Un archivo Compose exportado de ZimaOS no es un formato de copia de seguridad intocable
El autor de la fuente indicó que el archivo problemático procedía de exportar contenedores antes de reinstalar ZimaOS. Es una copia de seguridad útil, pero las definiciones de aplicaciones exportadas pueden contener metadatos generados por ZimaOS o una sintaxis más verbosa que una pila de Compose escrita manualmente.
Antes de depender de archivos exportados para la recuperación ante desastres:
- guárdalos en un formato de texto plano o compatible con código;
- ponlos bajo control de versiones cuando corresponda;
- valídalos mientras el sistema original siga funcionando;
- haz copias de seguridad por separado de las carpetas persistentes de AppData.
Lista de comprobación para importar Compose en ZimaOS
- Valida el YAML antes de importarlo.
- Sustituye las tabulaciones por espacios.
- Comprueba la sangría de las listas bajo ports, volumes, environment y networks.
- Asegúrate de que cada montaje de enlace incluya un origen y un destino.
- Usa
network_mode: hostsi se pretende utilizar la red del host. - No combines
network_modey el serviciolas redes. - Conserva
tmpfsen Compose si la interfaz visual no lo ofrece. - Elimina las opciones generadas o avanzadas que la aplicación no necesite.
- Conserva una copia de seguridad independiente de los datos de la aplicación; Compose por sí solo no contiene los datos.
Preguntas frecuentes sobre la importación de Docker Compose en ZimaOS
¿El problema original lo causó la caché del navegador?
No. El autor lo reprodujo después de reinstalar ZimaOS desde cero y en un navegador de incógnito, y luego confirmó que el verdadero problema eran los errores de formato en el archivo Compose guardado.
¿ZimaOS admite tmpfs en el formulario visual de aplicaciones personalizadas?
El hilo de 2025 indicaba que la interfaz gráfica no ofrecía esa opción. Docker Compose admite tmpfs, por lo que la importación es la vía avanzada adecuada.
¿Son inválidos mode: ingress y protocol: tcp en Docker Compose?
No de forma universal. Compose actualmente admite la sintaxis larga para puertos, incluido modoLa lección práctica del caso original es validar todo el YAML y eliminar la complejidad innecesaria cuando el importador de ZimaOS no puede utilizar de forma fiable el formato exportado.
