É possível executar duas cópias da mesma aplicação na camada do Docker Compose, mas alterar apenas o nome do contentor principal e a porta Web não é suficiente para uma pilha com vários serviços, como o Immich.
Utilize um projeto Compose separado para cada instância
A documentação da Docker sobre os nomes dos projetos Docker Compose explica que os nomes dos projetos Compose foram concebidos para isolar vários ambientes que, de outro modo, poderiam partilhar nomes de serviços. Atribua um nome de projeto exclusivo a cada instância, em vez de depender de contentores renomeados manualmente como principal mecanismo de isolamento.
A explicação sobre a primeira aplicação Docker aborda a camada Compose do ZimaOS, enquanto o Portainer no ZimaOS pode ajudar os utilizadores avançados a inspecionar pilhas independentes.
O Immich é uma pilha, não um único contentor
O Immich Docker Compose atual utiliza vários serviços e separa o armazenamento de carregamentos do armazenamento da base de dados. Por isso, uma segunda instância do Immich precisa dos seus próprios dados da base de dados, caminho de carregamentos, dados de cache/modelos, quando aplicável, e quaisquer portas do anfitrião que, de outro modo, entrariam em conflito.
O que precisa de ser exclusivo
- Nome do projeto Compose: isola os espaços de nomes dos serviços, redes e volumes.
- Portas publicadas no anfitrião: duas instâncias não podem associar-se à mesma porta do anfitrião.
- Pastas/volumes persistentes: não aponte bases de dados independentes ou bibliotecas de carregamentos para o mesmo diretório de dados com permissões de escrita.
- Referências de ambiente: mantenha cada pilha internamente consistente.
A migração do armazenamento do Immich é útil para compreender quais caminhos do Immich são persistentes e por que motivo não devem ser partilhados inadvertidamente entre instalações.
Evite definir container_name manualmente, salvo se necessário
Normalmente, o Compose pode gerar nomes com base nos nomes do projeto e do serviço. Definir container_name manualmente aumenta a possibilidade de conflitos globais de nomes e torna as pilhas duplicadas mais frágeis.
Em suma
O modelo mental correto é “dois projetos Compose isolados”, e não “a mesma aplicação com dois contentores renomeados”. No caso do Immich, isole o estado persistente de cada serviço e todas as portas publicadas. O estado partilhado pode fazer com que a segunda pilha falhe ou interfira com a primeira.
