Le regole di sintassi del file .env per virgolette, commenti, valori vuoti e chiavi multiriga, dove dotenv e Docker Compose non sono d'accordo, più un linter in cui incollare il tuo file.
Un file .env è testo semplice con una coppia KEY=value per riga. Le righe vuote vengono saltate e quelle che iniziano con # sono commenti. Metti tra virgolette un valore quando contiene spazi alle estremità, un segno # o a capo. Non esiste uno standard unico, quindi dotenv per Node e Docker Compose leggono alcuni casi limite in modo diverso.
Come dotenv legge le righe più comuni
La maggior parte dei file .env rotti fallisce sugli stessi pochi dettagli: un # in una password, una chiave privata incollata su più righe o una virgoletta mai chiusa. Incolla il tuo file nel linter per vedere cosa leggerebbe dotenv per ogni chiave, e dove Docker Compose lo leggerebbe in modo diverso.
No. Il formato è nato dalle assegnazioni di variabili della shell e ogni loader documenta le proprie regole. Il pacchetto dotenv per Node e Docker Compose pubblicano entrambi le loro, e concordano sulle basi: righe KEY=value, commenti con # e valori tra virgolette.
Solo quando servono. Le virgolette sono necessarie per valori con un segno #, spazi iniziali o finali, o a capo. Usa le virgolette singole in Compose quando vuoi che un $ resti letterale, perché lì i valori tra virgolette singole non vengono interpolati.
Racchiudilo tra virgolette doppie e mantieni i veri a capo, che dotenv supporta dalla versione 15.0.0. Puoi anche tenerlo su una riga e scrivere \n dove va ogni a capo, dato che i valori tra virgolette doppie trasformano \n in una nuova riga.
Sì, con attenzione. dotenv considera un # senza virgolette come l'inizio di un commento. Docker Compose lo fa solo quando prima del # c'è uno spazio, quindi KEY=a#b dà a#b in Compose ma a in dotenv. Lascia uno spazio prima dei commenti in linea per sicurezza.
No. Per impostazione predefinita dotenv non modifica mai una variabile che esiste già nell'ambiente, quindi vince un valore impostato dalla tua shell o dall'host. Passa l'opzione override impostata a true se vuoi che il file le sostituisca.
La stessa riga letta da due loader
Stesse chiavi del file reale, valori fittizi sicuri, commenti che spiegano ogni gruppo. Fai commit di questo, mai del vero .env.
config() legge .env dalla directory di lavoro corrente per impostazione predefinita. I valori già presenti nell'ambiente restano invariati.
Incolla il tuo file .env
Cosa legge dotenv da ogni riga
Riga
Chiave
Valore
Note
(stringa vuota)
{n} chiavi lette, {v} con note
Nessuna chiave trovata per ora.
Nessun segno =, quindi questa riga viene ignorata.
La chiave contiene uno spazio. Rimuovilo, altrimenti la riga non verrà letta come ti aspetti.
Non è un nome portabile. Le shell si aspettano lettere, cifre e underscore, senza iniziare con una cifra.
La virgoletta non si chiude mai, quindi il resto del file potrebbe finire dentro questo valore.
Impostata anche alla riga {n}. Tienine una sola così nessuno deve indovinare quale vince.
dotenv si ferma al #, ma Docker Compose lo mantiene perché non c'è uno spazio prima. Metti il valore tra virgolette.
Contiene $. Docker Compose lo espande; dotenv semplice lo mantiene così com'è scritto.
Si estende su più righe tra virgolette.
Inizia gratis · Nessuna carta di credito richiesta