Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Miljøvariabler og konfigurasjon i Compose | Arbeide med Docker Compose
Docker Essentials

Miljøvariabler og konfigurasjon i Compose

Sveip for å vise menyen

Bruk av miljøvariabler i docker-compose.yml

Miljøvariabler gir fleksible og gjenbrukbare Docker Compose-konfigurasjoner. Ved å definere variabler unngår du å hardkode verdier som porter, bilde-tagger eller påloggingsinformasjon direkte i docker-compose.yml-filen. I stedet refererer du til disse variablene, og Docker Compose erstatter dem med faktiske verdier ved kjøring. Denne metoden er spesielt nyttig når du skal bruke samme applikasjon i ulike miljøer, som utvikling, testing eller produksjon.

For å definere og bruke miljøvariabler i Compose-filen, følg disse stegene:

  • Lagre miljøvariabler i en .env-fil i samme mappe som docker-compose.yml;
  • Referer til variabler i Compose-filen med ${VARIABLE_NAME}-syntaksen;
  • Overstyr variabler ved å angi dem direkte i terminalen eller som del av CI/CD-pipelinen.

Anta at du vil konfigurere databasepassord og applikasjonsport med miljøvariabler. Opprett en .env-fil med innholdet:

DB_PASSWORD=supersecret
APP_PORT=8080

I docker-compose.yml refererer du til disse variablene slik:

version: "3.8"
services:
  web:
    image: myapp:latest
    ports:
      - "${APP_PORT}:80"
    environment:
      - DB_PASSWORD=${DB_PASSWORD}

Når du kjører docker-compose up, vil Docker Compose sette inn verdiene fra .env-filen i konfigurasjonen. Denne metoden holder sensitiv eller miljøspesifikk informasjon utenfor Compose-filen og gjør oppsettet mer portabelt.

Håndtering av hemmeligheter og sensitiv data i Compose-filer

Selv om miljøvariabler er praktiske, er de ikke alltid den sikreste måten å håndtere sensitiv informasjon som passord, API-nøkler eller sertifikater på. Miljøvariabler kan noen ganger eksponeres gjennom logger, prosesslister eller versjonskontroll hvis de ikke håndteres riktig. For å øke sikkerheten kan du bruke flere teknikker for å håndtere hemmeligheter i Docker Compose:

  • Lagre sensitive verdier i en separat .env-fil og sørg for at denne filen er ekskludert fra versjonskontroll med .gitignore;
  • Bruk Docker Compose sin støtte for Docker secrets hvis du bruker Docker Swarm, som lar deg montere hemmeligheter sikkert som filer inne i containerne;
  • Referer til hemmeligheter som filer på vertsmaskinen og monter dem inn i containeren med volumes-nøkkelen i Compose-filen.

Eksempel: For å unngå å eksponere et databasepassord, lagre det i en fil kalt db_password.txt og monter den inn i containeren:

services:
  db:
    image: postgres:latest
    volumes:
      - ./db_password.txt:/run/secrets/db_password
    environment:
      - POSTGRES_PASSWORD_FILE=/run/secrets/db_password

Denne metoden holder selve hemmeligheten utenfor Compose-filen og miljøvariabler, og reduserer risikoen for utilsiktet eksponering. Gå alltid gjennom konfigurasjonen og arbeidsflyten din for å sikre at hemmeligheter er beskyttet, og aldri legg sensitiv informasjon i versjonskontroll.

question mark

Hva er hovedfordelen med å bruke miljøvariabler i en Docker Compose-fil?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 3. Kapittel 4
some-alt