Communityoplossing

Twee instanties van dezelfde ZimaOS-app uitvoeren: Compose-projecten isoleren

A user tried to run two Immich installations by changing container names and ports. A community reply noted that the entire multi-service stack needs independent names, ports, volumes, and environment references.

Twee exemplaren van dezelfde applicatie uitvoeren is mogelijk op de Docker Compose-laag, maar voor een stack met meerdere services zoals Immich is alleen de naam van de hoofdcontainer en de webpoort wijzigen niet voldoende.

Gebruik een afzonderlijk Compose-project voor elke instantie

De Docker Compose-projectnamen van Docker zijn bedoeld om meerdere omgevingen te isoleren die anders servicenamen zouden kunnen delen. Geef elke instantie een unieke projectnaam in plaats van handmatig hernoemde containers als primaire isolatiemethode te gebruiken.

De eerste Docker-app legt de Compose-laag van ZimaOS uit, terwijl Portainer in ZimaOS gevorderde gebruikers kan helpen onafhankelijke stacks te inspecteren.

Immich is een stack, geen enkele container

De huidige Immich Docker Compose-configuratie gebruikt meerdere services en scheidt uploadopslag van databaseopslag. Een tweede Immich-instantie heeft daarom een eigen databasegegevensmap, uploadpad, cache- en modelgegevens waar van toepassing, en alle hostpoorten nodig die anders zouden conflicteren.

Wat uniek moet zijn

  • Compose-projectnaam: isoleert naamruimten voor services, netwerken en volumes.
  • Gepubliceerde hostpoorten: twee instanties kunnen niet dezelfde hostpoort gebruiken.
  • Permanente mappen/volumes: laat onafhankelijke databases of uploadbibliotheken niet naar dezelfde beschrijfbare gegevensmap verwijzen.
  • Omgevingsverwijzingen: houd elke stack intern consistent.

De Immich-opslagmigratie is nuttig om te begrijpen welke Immich-paden permanent zijn en waarom je ze niet zomaar tussen installaties moet delen.

Vermijd een hardgecodeerde container_name, tenzij dat nodig is

Compose kan normaal gesproken namen genereren op basis van de project- en servicenamen. Een hardgecodeerde container_name vergroot de kans op globale naamconflicten en maakt dubbele stacks kwetsbaarder.

Kort samengevat

Het juiste uitgangspunt is “twee geïsoleerde Compose-projecten”, niet “dezelfde app met twee hernoemde containers”. Isoleer voor Immich de permanente status van elke service en alle gepubliceerde poorten. Gedeelde status kan ervoor zorgen dat de tweede stack mislukt of de eerste verstoort.