As regras de sintaxe do arquivo .env para aspas, comentários, valores vazios e chaves multilinha, onde o dotenv e o Docker Compose divergem, e um linter em que você pode colar o seu arquivo.
Um arquivo .env é texto simples com um par KEY=value por linha. Linhas em branco são ignoradas e linhas que começam com # são comentários. Coloque o valor entre aspas quando ele tiver espaços nas pontas, um sinal # ou quebras de linha. Não existe um padrão único, então o dotenv para Node e o Docker Compose leem alguns casos extremos de forma diferente.
Como o dotenv lê linhas comuns
A maioria dos arquivos .env quebrados falha nos mesmos poucos detalhes: um # em uma senha, uma chave privada colada em várias linhas ou uma aspa que nunca fecha. Cole o seu arquivo no linter para ver o que o dotenv leria em cada chave e onde o Docker Compose leria de outro jeito.
Não. O formato nasceu das atribuições de variáveis do shell e cada carregador documenta as próprias regras. O pacote dotenv para Node e o Docker Compose publicam as suas, e concordam no básico: linhas KEY=value, comentários com # e valores entre aspas.
Só quando precisar. As aspas são obrigatórias para valores com sinal #, espaços no início ou no fim, ou quebras de linha. Use aspas simples no Compose quando quiser que um $ continue literal, porque valores entre aspas simples não são interpolados ali.
Coloque-o entre aspas duplas e mantenha as quebras de linha reais, o que o dotenv aceita desde a versão 15.0.0. Você também pode deixá-lo em uma linha e escrever \n onde vai cada quebra, já que valores entre aspas duplas transformam \n em nova linha.
Sim, com cuidado. O dotenv trata um # sem aspas como início de comentário. O Docker Compose só faz isso quando há um espaço antes do #, então KEY=a#b dá a#b no Compose, mas a no dotenv. Deixe um espaço antes de comentários na mesma linha por segurança.
Não. Por padrão, o dotenv nunca altera uma variável que já existe no ambiente, então um valor definido pelo seu shell ou pelo host vence. Passe a opção override como true se quiser que o arquivo as substitua.
A mesma linha lida por dois carregadores
As mesmas chaves do arquivo real, valores fictícios seguros e comentários explicando cada grupo. Faça commit deste, nunca do .env real.
config() lê o .env do diretório de trabalho atual por padrão. Valores que já estão no ambiente continuam como estão.
Cole o seu arquivo .env
O que o dotenv lê de cada linha
Linha
Chave
Valor
Notas
(string vazia)
{n} chaves lidas, {v} com notas
Nenhuma chave encontrada ainda.
Sem sinal =, então esta linha é ignorada.
A chave contém um espaço. Remova-o ou a linha não será lida como você espera.
Não é um nome portável. Shells esperam letras, dígitos e underscores, sem começar com dígito.
A aspa nunca fecha, então o resto do arquivo pode ser engolido por este valor.
Também definida na linha {n}. Mantenha só uma para ninguém precisar adivinhar qual vence.
O dotenv para no #, mas o Docker Compose o mantém porque não há espaço antes dele. Coloque o valor entre aspas.
Contém $. O Docker Compose expande; o dotenv puro mantém como foi escrito.
Ocupa várias linhas dentro de aspas.
Comece grátis · Sem cartão de crédito