Vários Profiles do Hermes significam vários contentores Docker? Uma chave de configuração permite-lhes partilhar um único


Corres três Profiles do Hermes: um para o trabalho, um para projetos pessoais, um para experiências. Cada Profile está configurado com o backend de terminal Docker, por isso sempre que arrancas, vários contentores sobem na tua máquina — mais disco, arranques mais lentos, dependências instaladas separadamente em cada um, e alterações de ambiente que têm de ser sincronizadas contentor a contentor. O PR #94633, fundido a 25 de agosto, oferece uma correção elegante: Profiles de confiança podem partilhar um único contentor Docker persistente, controlado por uma única chave de configuração.

Antes: um contentor por Profile

Primeiro, o comportamento por defeito. O backend Docker do Hermes (terminal.backend: docker) dá a cada Profile o seu próprio contentor — a regra de isolamento estabelecida no mesmo dia pelo PR #94560: os contentores são delimitados e nomeados por Profile (profile:<name>), sem interferência cruzada. O lado bom é um isolamento limpo; o lado mau são recursos duplicados: três Profiles significam três conjuntos de dependências, três caches, três ambientes.

Se usas Docker principalmente para tarefas isoladas pontuais, esse padrão está bem — não é preciso mudar nada. Mas se vários dos teus Profiles são “família de confiança” — por exemplo, um Profile de trabalho e um Profile de experiências que usam na prática o mesmo ambiente de desenvolvimento —, a duplicação é puro desperdício.

Agora: uma chave, um contentor

O PR #94633 introduz uma nova chave de configuração: terminal.docker_shared_container_key. As regras são simples:

  • Não definida (string vazia por defeito): comportamento atual, cada Profile mantém o seu próprio contentor;
  • Vários Profiles com o mesmo valor: partilham um contentor persistente, identificado como shared:<your-key>;
  • Execuções diretas via CLI (sem contexto de Profile) com a mesma chave configurada também caem nesse contentor partilhado.

Configuração:

hermes config set terminal.docker_shared_container_key team/ws

Ou edita o ficheiro de configuração diretamente (hermes config path mostra a localização):

terminal:
  backend: docker
  docker_shared_container_key: "team/ws"

Assim que os Profiles work e research usarem ambos team/ws, os seus comandos caem no mesmo contentor: instala as dependências uma vez e todos as veem, os caches ficam quentes, as alterações de ambiente aplicam-se num único lugar. Nos testes oficiais, os dois Profiles resolvem para a mesma chave de contentor shared:team/ws.

Casos em que a partilha é deliberadamente ignorada

Isto não é uma fusão impensada — há três fronteiras que vale a pena conhecer:

  • Os backends SSH não participam: terminal.docker_shared_container_key só afeta o backend Docker; os ambientes SSH ignoram-na por completo;
  • O modo não persistente mantém-se isolado: se usas sessões Docker descartáveis (não persistentes), a chave partilhada não vai enfiar duas sessões efémeras no mesmo contentor — o isolamento por sessão mantém-se;
  • Chaves diferentes = sem partilha: a chave é a fronteira de isolamento; Profiles com valores diferentes usam cada um o seu próprio contentor.

Além disso, os ficheiros produzidos no contentor partilhado (por exemplo, anexos MEDIA) continuam a poder ser obtidos a partir das sessões — os testes oficiais cobriram especificamente a entrega de media a partir do sandbox partilhado.

Quando ativá-la, quando a deixar em paz

Bons candidatos: Profiles que são na prática pontos de entrada diferentes no mesmo ambiente de desenvolvimento; um “contentor de ambiente” partilhado para uma equipa; utilizadores pessoais com vários Profiles que querem poupar disco e tempo de arranque.

Mantém o padrão: Profiles com baixa confiança mútua (por exemplo, que alojam automação não fiável); ambientes que precisam de isolamento rigoroso para auditoria; Profiles experimentais cujas versões de dependências possam colidir. O isolamento é sempre mais seguro do que a partilha — a chave partilhada é para Profiles “de confiança”, que é exatamente o que “trusted profiles” no título do PR significa.

Resumo

Uma chave de configuração transforma “um contentor Docker por Profile” em “um contentor para a família”: terminal.docker_shared_container_key deixada vazia mantém o isolamento por defeito, enquanto vários Profiles com o mesmo valor partilham um contentor persistente. Para saber mais sobre fluxos de trabalho com vários Profiles, consulta o nosso guia de multi-instância de Profiles; para operações com o ficheiro de configuração, a referência de comandos hermes config cobre o resto. Ainda a decidir se Docker é o backend certo? O guia de instalação percorre todas as opções de backend.