Kako proslijediti varijable okruženja u Docker kontejner

How Pass Environment Variables Docker Container



Docker je program otvorenog koda koji izvršava poslužiteljske aplikacije pomoću spremnika, a ne virtualnih strojeva. Docker je konfiguracija za razvoj i hosting koja koristi manje resursa, pa ne čudi što zahvaća svijet razvoja. Varijable Docker okruženja značajne su za ovaj postupak jer pohranjuju podatke koji su jedinstveni za svaki korisnički račun koji pristupa softveru.

Koristeći bilo koji moderni JavaScript okvir za izradu spremnika za jednu aplikaciju, možete otkriti da se konfiguracijske postavke razlikuju ovisno o tome gdje će se spremnik izvesti. Na primjer, osnovni URL vašeg API -ja može se razlikovati ovisno o tome testirate li ili objavljujete aplikaciju. Razvojni programeri uobičajeno koriste varijable okruženja za rješavanje ovog problema jer kôd radi na pozadini, tamo se obično koriste varijable okruženja.







Tijekom izgradnje slike, možda ćemo morati proslijediti informacije o okolišu u operativni spremnik. Da bismo to učinili, koristimo ENV i ARG naredbe. Naredba ARG stvara varijablu koja se može dati tijekom procesa izgradnje. Nakon što je definiran u Dockerfile-u, možete upotrijebiti parametar —build-arg da ga dostavite alatu za izgradnju slika. U Dockerfileu možemo imati brojne ARG upute. U Dockerfile -u naredba ARG jedina može doći prije FROM upute.



Međutim, ENV instrukcija postavlja varijablu okruženja, koja pak specificira okruženje za građevinske upute koje slijede. ENV instrukcija dostupna je tijekom procesa izgradnje, kao i kada se spremnik pokrene s zastavicom —env. Međutim, nismo u mogućnosti proći ENV instrukciju pri izgradnji slike. Direktiva ARG ima nedostatak što ne može postojati nakon što je slika izgrađena. Za prosljeđivanje podataka o okolišu pri stvaranju slike, koristit ćemo samo ENV i ARG. U ovom vodiču naučit ćemo vas kako proslijediti varijablu okruženja u docker spremnik.



Preduvjeti

Da biste proslijedili varijable okruženja u docker spremnik, morate imati instaliran Ubuntu 20.04 Linux sustav. Također, svakako instalirajte najnoviju verziju Dockera na svoj sustav. U slučaju da nije prisutan u sustavu, možete ga instalirati pomoću naredbe navedene u nastavku.





$ sudo apt install docker.io

U cijelom ovom vodiču koristili smo ključnu riječ Sudo što znači da za pokretanje ovog članka morate imati sudo privilegije.



Metoda prosljeđivanja varijabli okoliša

Da biste proslijedili varijable okruženja u spremnik dockera, morate otvoriti terminal naredbenog retka pomoću tipke prečaca Ctrl+Alt+T ili pretraživanjem u izborniku aplikacija pomoću trake za pretraživanje. Sada slijedite dolje navedene korake:

Korak 1: Povucite sliku
U cijelom ovom vodiču koristit ćemo Alpine, sićušnu (5 MB) Linux sliku. Za početak preuzmite sliku lokalno pomoću sljedeće pridružene naredbe:

$ sudo docker pull alpine: 3

Izlaz prikazuje uspješno povlačenje slike.

Korak 2: Prijenos varijabli okruženja
Pomoću zastavice –env možemo unijeti varijable okruženja kao parove ključ / vrijednost izravno u naredbeni redak pri pokretanju našeg Docker spremnika. Upotrijebimo sljedeću priloženu naredbu kao ilustraciju:

$ sudo docker run --env VARIABLE1 = foobar alpine: 3

Za ovu naredbu neće biti posebnih izlaza.

Korak 3: Odražavanje varijabli okruženja
Da biste odrazili varijable okruženja, upotrijebite sljedeću dodanu naredbu zajedno s ključnom riječi export.

$ export VARIABLE2 = foobar2

Za ovu naredbu neće biti posebnih izlaza.

Korak 4: Odredite varijable okruženja
Sada, bez navođenja vrijednosti varijable okoline, definirajmo varijablu okruženja pomoću naredbe navedene u nastavku u terminalu:

$ sudo docker run --env VARIABLE2 alpine: 3 env

U ispisu možete vidjeti da je varijabla okoline uspješno proslijeđena u docker spremnik.

Zaključak

U ovom smo članku razmatrali koncept i važnost varijabli okruženja u dockeru. Također smo vam dali korak-po-korak vodič za prosljeđivanje varijable okoline u docker spremnik. Nadam se da nećete imati problema pri prenošenju varijable okoline u docker spremnik.