A correção
Declare a variável em environment ou carregue intencionalmente um arquivo de ambiente do serviço com env_file. Uma chave solta no .env não cria essa atribuição no modelo do serviço.
Confira primeiro a configuração resolvida. É possível identificar essa diferença sem criar ou reiniciar um container. Use uma pasta de teste e os valores fictícios abaixo.
Reproduza a entrada ausente
Crie os dois arquivos na mesma pasta.
# .env
CC_IMAGE_TAG=1.37
CC_ONLY=not-automatically-injected# compose.yaml
services:
probe:
image: busybox:${CC_IMAGE_TAG}docker compose config --format jsonNo nosso teste com Compose 5.3.0, services.probe.image ficou como busybox:1.37. Já services.probe.environment não apareceu. O primeiro valor foi usado na construção do modelo; o segundo não foi atribuído ao serviço.
Esse resultado descreve o modelo do Compose. Não é uma inspeção do ambiente de um container em execução nem das variáveis definidas pela própria imagem.
Passe o valor de forma explícita
services:
probe:
image: busybox:${CC_IMAGE_TAG}
environment:
CC_ONLY: ${CC_ONLY:?CC_ONLY must be set}Execute novamente config. Agora o modelo inclui:
environment:
CC_ONLY: not-automatically-injectedA expressão obrigatória evita que um valor ausente ou vazio passe silenciosamente. Em outro teste, uma entrada vazia terminou com erro contendo CC_EMPTY must be set.
Para fornecer várias variáveis do aplicativo, você também pode criar um arquivo dedicado e declará-lo em env_file. Prefira separar configurações do aplicativo de opções usadas apenas para montar o projeto.
Confira a camada certa
- A tag não foi resolvida: confira a origem da interpolação e o caminho do arquivo.
- A variável não está no modelo: revise a atribuição ao serviço.
- O modelo está certo, mas o aplicativo está diferente: verifique o container implantado e as regras do próprio aplicativo.
Nossa prova não executou up, reinício, download de imagem ou acesso ao daemon. Antes de aplicar a mudança em um projeto real, revise o diff e siga o processo de publicação desse projeto. Para desfazer a alteração no teste, restaure o mapeamento anterior.
Em um projeto real, config pode mostrar segredos resolvidos. Não publique essa saída. A prova disponível neste site usa apenas valores de demonstração.
Fontes e prova
Documentação consultada em 12.09.2026. Prova própria: