Selamlar arkadaşlar bu yazımda sizlere Docker Container oluşturma sırasında Environment Variables (Ortam Değişkenleri)’nin nasıl kullanıldığını göstereceğim.
İlk olarak kısaca ne olduğunu söylemem gerekirse, OS bazında olan bu değişkenler, tanımlandıkları değerlerle OS içerisinde istenilen yerden erişim sağlanabilir. Windows ve Linux işletim sistemlerinde tanımlama şekilleri farklılık gösterecektir. Ancak ben Docker uygulamalarımı Linux üzerinden yaptığım için bu değişkenleri tanımlama örneği olarak Linux platformunu kullanacağım.
> export semih="benim-denemem"
> echo $semih
> printenv
Buradaki export kodu ile yeni bir değişken tanımlarken, echo komudu ile değeri okuyabilir, printenv komudu yardımıyla ise OS içerisindeki sistem değişkenlerinin tamamını görebilirsiniz.
Önemli bir not vermem gerekirse; bu değişkenleri oluştururken ya da okurken Büyük-Küçük harf duyarlılığına dikkat etmelisiniz. Aksi halde çalışmayacaklardır.
Docker’da Environment Variables kullanımı neden yapılıyor diye sorduğunuzu duyar gibiyim.
Uygulamaların taşınabilirliği ve yapılandırmasını kolaylaştırmasından dolayı kullanılmalıdır. Örnek olarak uygulamanızdaki bir Path’i bile sürekli olarak kodunuzdan değiştirmek yerine, Container ya da Image build ettiğiniz aşamada bu değeri Environment Variables olarak verirseniz hayat daha kolay olacaktır. Bu sayede Path’i kolayca değiştirebileceksiniz.
Dediğim gibi şuanda sadece Container oluştururken bu değerleri kullandığımı göreceksiniz ama ileriki zamanlarda Image oluştururken de çokca kullanılacak bu değişkenlerimiz.
Container’larımızı oluştururken bu değeleri kullanalım :
> docker container run -it --env ENV1=sistem -e Env2=dostu alpine sh
> docker container run -it --env degisken alpine sh
Komutlarının içerisinde bulunan –env ENV1=sistem ile -e Env2=dostu şeklinde option’ları belirtirsek, değişkenlerimizi oluştaracaktır ve container’a bağlanıp printenv yazdığınızda bunları görebilirsiniz.
Ayrıca –env ya da -e’yi, Docker’ı barındıran sistemde bulunan değişkenlerin adı ile kullanırsanız içeriye onun değerini ayarlayacaktır. Benim örneğimde Linux üzerinde oluşturmuş olduğum degisken=sistemdostu değerini kullandım arkadaşlar.
> docker container run -it --env-file ./degisken.txt alpine sh
Eğer birden fazla değişkeni aynı anda tanımlamak isterseniz bunun bir listesini txt formatında yapabilir ve daha sonra o txt adı ile –env-file ./degisken.txt şeklinde belirtirseniz, Container’ınıza tanımlayabilirsiniz.
Bu şekilde Container’larınızı tanımlarken Environment Variable’lardan yararlanabilirsiniz arkadaşlar. Görüş ve yorumlarınız için alt taraftaki yorumlar alanını kullanabilirsiniz. Bana destek vermek isterseniz ise Youtube’da bulunan SistemDostu kanalıma abone olabilirsiniz. Hepimize kolaylıklar dilerim.