Dockerin ja DevOpsin perusteet · Oppitunti

Ympäristömuuttujat ja .env-tiedostot

Määrittäkää Compose-palvelut selkeästi ympäristömuuttujien, muuttujien korvauksen ja .env-tiedoston avulla, jotta sama Compose-tiedosto toimii kehitys-, testi- ja tuotantoympäristössä.

Oppitunti 4/413 vaihetta

Ympäristömuuttujat ja .env-tiedostot on ilmainen Dockerin ja DevOpsin perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Dockerin ja DevOpsin perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Dockerin ja DevOpsin perusteet-kurssilla on yhteensä 4 oppituntia.

Miksi asetukset kannattaa ulkoistaa

Salasanojen ja porttien määrittäminen suoraan Compose-tiedostoon on hauraalle pohjalle rakentamista ja turvatonta. Ympäristömuuttujien avulla voit muuttaa toimintaa ympäristön mukaan muokkaamatta YAML-tiedostoa.

  • Pidä salaisuudet poissa versionhallinnasta
  • Käytä samaa Compose-tiedostoa kaikkialla
  • Ohita arvot ajon aikana

environment-avain

Määritä palvelun sisällä muuttujat environment-avaimen alle karttana. Ne viedään konttiin sen käynnistyessä.

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: secret

Luettelomuoto

Sama avain hyväksyy myös luettelon KEY=VALUE-merkkijonoja. Valitse muoto, jota on mielestäsi helpompi lukea.

services:
  db:
    image: postgres:16
    environment:
      - POSTGRES_USER=app
      - POSTGRES_PASSWORD=secret

.env-tiedosto

Compose lukee projektihakemistosta automaattisesti tiedoston nimeltä .env. Määritä arvot siellä kerran ja viittaa niihin ${VAR}-korvauksella.

# .env
PG_USER=app
PG_PASS=secret
WEB_PORT=8080

Muuttujien korvaaminen

Käytä muotoa ${VAR} missä tahansa Compose-tiedostossa. Compose korvaa sen .env-tiedostosta tai komentotulkista saadulla arvolla ennen jäsentämistä.

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: ${PG_USER}
      POSTGRES_PASSWORD: ${PG_PASS}

Oletusarvot

Anna varavaihtoehto muodossa ${VAR:-default}. Jos muuttujaa ei ole määritetty tai se on tyhjä, käytetään oletusarvoa, jolloin pino toimii ilman täydellistä .env-tiedostoa.

ports:
  - "${WEB_PORT:-80}:80"

Pakolliset muuttujat

Tee muuttujasta pakollinen muodolla ${VAR:?message}. Compose keskeyttää suorituksen ja näyttää antamasi viestin, jos muuttuja puuttuu. Näin virheelliset asetukset havaitaan ajoissa.

environment:
  API_KEY: ${API_KEY:?API_KEY must be set}

env_file-direktiivi

Kun haluat välittää kokonaisen muuttujatiedoston suoraan konttiin (etkä vain käyttää sitä korvauksiin), käytä env_file-asetusta. Jokaisesta rivistä tulee kontin ympäristömuuttuja.

services:
  api:
    image: myapi:1.0
    env_file:
      - api.env

Prioriteettisäännöt

Kun muuttuja määritellään useassa paikassa, Compose soveltaa etusijajärjestystä. Shell-ympäristö ohittaa .env-tiedoston; eksplisiittinen environment:-määritys ohittaa env_file-määrityksen.

  • Shell / CLI -valitsin -e voittaa
  • sen jälkeen environment:
  • sen jälkeen env_file
  • lopuksi imagen oletukset

Ratkaistujen arvojen tarkasteleminen

Suorittamalla docker compose config tulostatte täysin ratkaistun Compose-tiedoston, jossa kaikki korvaukset on tehty. Tämä on erinomainen tapa tarkistaa, mitä todella suoritetaan.

docker compose config

Pidä salaisuudet poissa Gitistä

Commitoikaa paikkamerkkejä sisältävä .env.example ja lisätkää todellinen .env tiedostoon .gitignore. Tuotantoympäristön oikeille salaisuuksille kannattaa käyttää env-muuttujien sijaan Docker secrets -ominaisuutta.

# .gitignore
.env

Pikatarkistus

Miten oletusarvot toimivat korvauksissa?

Kertaus

Osaat nyt määrittää Composen ympäristötiedot siististi:

  • environment: välittää muuttujat palvelukohtaisesti
  • .env-tiedosto syöttää arvot ${VAR}-korvauksille
  • :- antaa oletusarvon ja :? merkitsee arvon pakolliseksi
  • docker compose config näyttää ratkaistun tuloksen

Näin sama Compose-tiedosto toimii eri ympäristöissä.

Aloita maksutta

Opi Dockerin ja DevOpsin perusteet tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Ympäristömuuttujat ja .env-tiedostot” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Dockerin ja DevOpsin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Ympäristömuuttujat ja .env-tiedostot”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Dockerin ja DevOpsin perusteet-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Ympäristömuuttujat ja .env-tiedostot”?

Määrittäkää Compose-palvelut selkeästi ympäristömuuttujien, muuttujien korvauksen ja .env-tiedoston avulla, jotta sama Compose-tiedosto toimii kehitys-, testi- ja tuotantoympäristössä. Harjoittelet Dockerin ja DevOpsin perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Dockerin ja DevOpsin perusteet-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Dockerin ja DevOpsin perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Ympäristömuuttujat ja .env-tiedostot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Dockerin ja DevOpsin perusteet-oppitunnilla?

Kyllä. Jokainen Dockerin ja DevOpsin perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mikä Docker Compose on?
  2. Compose-tiedoston kirjoittaminen
  3. Usean palvelun sovellusten käyttöönotto
  4. Ympäristömuuttujat ja .env-tiedostot
← Takaisin: Dockerin ja DevOpsin perusteet