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_keysó 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.