Jack Wallen vă arată cum să transmiteți variabile de mediu containerelor Docker pentru un proces de dezvoltare mai eficient.
Știați că puteți transmite variabile de mediu de la gazdă la containerele Docker? Folosind această caracteristică, puteți face dezvoltarea acestor containere puțin mai eficientă. Dar, înainte de a intra în cum, trebuie să abordăm ceea ce - cum ar fi, ce sunt variabilele de mediu?
VEDEA: Cele mai bune limbaje de programare de învățat și cele mai rele (Premium TechRepublic Premium)
Variabilele de mediu sunt valori denumite dinamic care pot fi stocate și apoi transmise la servicii, aplicații sau scripturi. Aceasta este o modalitate ușoară de a stoca o valoare într-o locație centralizată (de obicei în memorie) și apoi de a o folosi la nivel global. Pentru a afla mai multe despre ce sunt variabilele de mediu, consultați „Linux 101: Ce sunt variabilele de mediu?Matei 22:21
Aceste tipuri de variabile sunt un truc incredibil de la îndemână pentru a avea în mânecă. Și dacă sunteți un dezvoltator de containere, ei vă pot ajuta să vă ușurăm puțin munca.
Permiteți-mi să vă arăt cum.
Ce veți avea nevoie
Singurul lucru de care veți avea nevoie pentru a transmite variabile de mediu containerelor Docker este o instanță care rulează Docker și un utilizator care face parte din grupul docker. Asta este. Să trecem câteva variabile.
Cum să setați o variabilă de mediu
Pentru a transmite o variabilă de mediu unui container, trebuie mai întâi să o setăm. O să demonstrez asta în Linux. Dacă utilizați un alt sistem de operare pentru dezvoltarea containerelor, va trebui să aflați cum să faceți același lucru pe platforma dorită.
Să presupunem că vrem să setăm variabila pentru un utilizator al bazei de date și intenționăm să folosim acea variabilă pentru diferite containere. Am putea seta o variabilă numită DB_USER, care ar fi viabilă pentru orice container care utilizează orice tip de bază de date. Să presupunem că valoarea pentru DB_USER va fi TechRepublic. Pentru a seta acea variabilă, vom lansa comanda:
export DB_USER=TechRepublic
Pentru a verifica că variabila a fost setată, lansați comanda:
echo $DB_USER
Ar trebui să vedeți TechRepublic tipărit în terminal. Gata, ți-ai setat variabila. Să facem acest lucru cu un pas mai departe (de dragul exemplului) și, de asemenea, să setăm o parolă ca variabilă de mediu. Nu ați face acest lucru în producție, dar este o modalitate bună de a ilustra cum se face acest lucru. Setați o variabilă de mediu pentru parolă cu:
export DB_PWORD=T3chR3public
Cum se transmite variabila într-un container
Acum că înțelegeți cum funcționează variabilele de mediu, puteți vedea cum pot fi trecute cu ușurință în containerele dvs. Mai întâi voi demonstra cum se face acest lucru din linia de comandă docker și apoi folosind un fișier .env.
Spre deosebire de utilizarea variabilelor de mediu în Linux, nu le puteți seta pe gazdă și apoi treceți acele variabile setate containerului în același mod în care ați face-o în sistemul gazdă. Cu alte cuvinte, nu puteți folosi variabilele pe care tocmai le-am setat cu comanda Docker, cum ar fi:
rulare docker --name postgresql -e $DB_PWORD -e $DB_USER -d postgres
Dacă încercați să implementați containerul ca atare, acesta va rula, dar va ieși imediat. De ce? Pentru că, spre deosebire de sistemul Linux, unde puteți defini destul de mult variabilele de mediu așa cum doriți, imaginile containerului se așteaptă la anumite variabile. De exemplu, baza de date PostgreSQL nu poate folosi DB_PWORD sau DB_USER, deoarece se așteaptă la POSTGRES_PASSWORD și POSTGRES_USER. În acest scop, puteți seta acele variabile de mediu pe gazdele dvs. Linux cu comenzile:
export POSTGRES_PASSWORD=t3chr3public export POSTGRES_USER=TechRepublic
OK, acum putem rula aceeași comandă cu:
rulare docker --name postgresql -e POSTGRES_PASSWORD -e POSTGRES_USER -d postgres
Comanda va reuși și containerul va rămâne în funcțiune. Îl puteți testa accesând consola PostgreSQL din container prin emiterea:
docker exec -it postgresql psql -U $POSTGRES_USER
Ar trebui să vă găsiți la consola PostgreSQL din containerul dvs.
Cum să transferați variabile cu un fișier .env
Una dintre problemele legate de transmiterea variabilelor de mediu, așa cum este descris mai sus, este că acestea trăiesc în memorie (până când le dezactivați cu dezactivat comanda). Pentru a evita acest lucru, folosim un fișier variabilă de mediu.
Să rămânem cu aceleași variabile pe care le-am folosit mai sus. Creați un nou fișier .env cu comanda:
nano .env
În acel fișier lipiți următoarele:
POSTGRES_PASSWORD=t3chr3public POSTGRES_USER=TechRepublic
Salvați și închideți fișierul.
Acum, cum trecem acele variabile? Simplu, vom lansa comanda:
docker run --name postgresql --env-file .env -d postgres
Asigurați-vă că utilizați calea completă către fișierul dvs. .env (dacă nu executați comanda docker din același director care conține fișierul). Containerul dvs. se va implementa și va fi gata de utilizare. Îl puteți testa accesând consola PostgreSQL. Singura diferență este că trebuie să tastați manual utilizatorul (deoarece nu am setat variabila POSTGRES_USER în sistemul gazdă). Acea comanda ar fi:
docker exec -it postgresql psql -U TechRepublic
Și așa treceți variabilele de mediu într-un container Docker, fie din linia de comandă, fie folosind un fișier .env. Sperăm că puteți utiliza această metodă în fluxul de lucru pentru dezvoltatori pentru a face lucrurile puțin mai eficiente.
De asemenea, vezi
- "
- aplicatii
- CEL MAI BUN
- Pic
- cod
- Recipient
- Containere
- Baza de date
- Dezvoltator
- Dezvoltare
- Docher
- Container de andocare
- Mediu inconjurator
- Essentials
- Ieşire
- se așteaptă
- exporturile
- Caracteristică
- First
- Complet
- bine
- grup
- la indemana
- carcasă
- Cum
- Cum Pentru a
- HTTPS
- imagine
- IT
- Loc de munca
- Locuri de munca
- Limbă
- Linie
- linux
- locaţie
- ştiri
- de operare
- sistem de operare
- Altele
- Parolă
- platformă
- Premium
- producere
- Programare
- limbaje de programare
- RE
- Alerga
- funcţionare
- salarii
- Servicii
- set
- simplu
- sistem
- test
- miniatura
- Sfaturi
- valoare
- săptămânal
- în
- cuvinte
- Apartamente
- flux de lucru