Hur man använder Docker .env-fil

Hur du använder Docker .env-fil Gör din docker-compose.yml-komposition enklare och renare genom att deklarera variabler i en .env-fil.

Dockers miljövariabelfil (.env) är avgörande när du skapar komplexa containerdistributioner. Som du kan förvänta dig av namnet låter den här filen dig deklarera miljövariabler för dina containrar. Detta kommer ganska praktiskt eftersom .env-filen kan återanvändas för andra behållare eller snabbt redigeras - istället för att behöva redigera de mer komplexa docker-compose.yml-filerna.

Jag vill visa dig grunderna för att använda .env-filen.

Hybridmoln: En guide för IT-proffs (nedladdning av TechRepublic)

Vad du behöver

För att kunna använda .env-filer behöver du en fungerande instans av Docker och docker-compose.

Deklarationsvärden i .env-filen

Inom .env-filen deklarerar du värden för vissa variabler. Dessa värden har formen:

 VARIABLE_NAME = VALUE 

Där VARIABLE_NAME är namnet på variabeln och VALUE är det verkliga värdet för variabeln.

Dessa värdepar (inom .env-filen) används i stället för att deklarera variabler i filen docker-compose.yml, som finns i formen:

 miljö: - VARIABLE_NAME = $ {VALUE} 

När du hårdkodar dessa variabler i filen docker-compose.yml, kan de inte återanvändas för andra behållare, och de måste redigeras direkt om de ändras.

Inom .env-filen kan du förklara nästan alla typer av variabler. Om du till exempel använder en databas för din container. I .env-filen kan du förklara:

  • DB_NAME
  • DB_USER
  • DB_PW
  • DB_ROOT_PW

Så låt oss säga att du har din .env-fil (det är namnet på filen förresten) i samma katalog som innehåller din docker-compose.yml-fil. I den .env-filen har du följande linjer:

 DB_NAME = dbase DB_USER = dbuser DB_PW = dbpassord DB_ROOT_PW = dbrootpw 

Använda variabler

Hur använder du dem med deklarerade variabler? Från docker-compose.yml-filen kan du sedan ringa dem så:

 tjänster: db: image: mysql-miljö: - MYSQL_DATABASE: "$ {DB_NAME}" - MYSQL_USER: "$ {DB_USER}" - MYSQL_ROOT_PASSWORD: "$ {DB_ROOT_PW}" - MYSQL_PASSWORD: "$ {DB_PW}" 

Eftersom du har definierat dessa variabler i .env-filen kommer de automatiskt att läsas när du utfärdar kommandot docker-compose up, eftersom docker-compose-kommandot alltid kontrollerar efter .env-filen först.

Förutsatt att du har en fullständigt utflödad docker-compose.yml-fil, bör din behållare byggas utan fel.

Varför den här metoden?

Med hjälp av .env-filen kan du ta en metod för att skriva en gång för att konfigurera dina containrar. Även om du kanske inte använder exakt samma variabler för olika behållare, låter det dig skapa en enda .env-fil och sedan enkelt redigera värdena, så att den kan återanvändas för andra behållare. Detta möjliggör också enklare skrivning av docker-compose.yml-filer, eftersom du inte behöver koda alla miljövariabler.

Testa den här metoden och se om det inte hjälper till att göra din docker-compose.yml-skrivning lite enklare och effektivare.

Cloud och allt som ett nyhetsbrev för tjänster

Det här är din resurs för det senaste om AWS, Microsoft Azure, Google Cloud Platform, XaaS, molnsäkerhet och mycket mer. Levereras måndagar

Registrera dig idag

© Copyright 2020 | mobilegn.com