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ä.
Ympäristömuuttujat ja .env-tiedostot on ilmainen DevOps-bootcamp-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 DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-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: secretLuettelomuoto
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=8080Muuttujien 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.envPrioriteettisää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
-evoittaa - 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 configPidä 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
.envPikatarkistus
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 pakolliseksidocker compose confignäyttää ratkaistun tuloksen
Näin sama Compose-tiedosto toimii eri ympäristöissä.
Opi DevOps-bootcamp 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
- 142
- Oppitunnit
- 568
Usein kysytyt kysymykset
Onko oppitunti ”Ympäristömuuttujat ja .env-tiedostot” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-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. DevOps-bootcamp-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 DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-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ä DevOps-bootcamp-oppitunnilla?
Kyllä. Jokainen DevOps-bootcamp-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
- Mikä Docker Compose on?
- Compose-tiedoston kirjoittaminen
- Usean palvelun sovellusten käyttöönotto
- Ympäristömuuttujat ja .env-tiedostot