Ortam Değişkenleri Docker Kapsayıcısına Nasıl Geçilir?

How Pass Environment Variables Docker Container



Docker, sunucu uygulamalarını sanal makineler yerine kapsayıcıları kullanarak yürüten açık kaynaklı bir programdır. Docker, daha az kaynak kullanan bir geliştirme ve barındırma yapılandırmasıdır, bu nedenle geliştirme dünyasını süpürmesi şaşırtıcı değildir. Docker ortam değişkenleri, yazılıma erişen her kullanıcı hesabına özgü verileri sakladıkları için bu prosedür için önemlidir.

Tek bir uygulama için kapsayıcı oluşturmak için herhangi bir modern JavaScript çerçevesini kullanarak, kapsayıcının yürütüleceği yere bağlı olarak yapılandırma ayarlarının değiştiğini keşfedebilirsiniz. Örneğin, API'nizin temel URL'si, uygulamayı test etmenize veya yayınlamanıza bağlı olarak değişebilir. Ortam değişkenleri, kod arka uçta çalıştığı için geliştiriciler tarafından bu sorunu çözmek için yaygın olarak kullanılır, ortam değişkenleri genellikle orada kullanılır.







Görüntü oluşturma sırasında, ortam bilgilerini işletim konteynerine aktarmamız gerekebilir. Bunu yapmak için hem ENV hem de ARG komutlarını kullanırız. ARG komutu, oluşturma işlemi sırasında sağlanabilecek bir değişken oluşturur. Dockerfile'da tanımlandıktan sonra, görüntü oluşturucuya sağlamak için —build-arg parametresini kullanabilirsiniz. Dockerfile'da çok sayıda ARG talimatımız olabilir. Dockerfile'de FROM komutundan önce gelebilen tek komut ARG komutudur.



Ancak, ENV talimatı, takip eden yapım talimatları için ortamı belirleyen ortam değişkenini ayarlar. ENV talimatına inşaat sürecinde olduğu kadar konteyner —env bayrağıyla başlatıldığında da erişilebilir. Ancak, görüntüyü oluştururken ENV komutunu geçemiyoruz. ARG yönergesi, görüntü oluşturulduktan sonra kalıcı olamama dezavantajına sahiptir. Görüntüyü oluştururken ortam verilerini satır içi iletmek için hem ENV hem de ARG kullanacağız. Bu kılavuzda, bir ortam değişkenini bir docker konteynerine nasıl geçireceğinizi öğreteceğiz.



Ön koşullar

Ortam değişkenlerini bir docker konteynerine geçirmek için Ubuntu 20.04 Linux sisteminin kurulu olması gerekir. Ayrıca sisteminize Docker'ın güncel sürümünü yüklediğinizden emin olun. Sistemde olmaması durumunda aşağıdaki komut ile kurulumunu gerçekleştirebilirsiniz.





$ sudo apt yükleme docker.io

Bu öğreticinin tamamında, bu makaleyi çalıştırmak için sudo ayrıcalıklarına sahip olmanız gerektiği anlamına gelen Sudo anahtar sözcüğünü kullandık.



Ortam Değişkenlerini Geçirme Yöntemi

Ortam değişkenlerini bir docker konteynerine iletmek için, Ctrl+Alt+T kısayol tuşunu kullanarak komut satırı terminalini açmanız veya arama çubuğunu kullanarak uygulama menüsünde arama yapmanız gerekir. Şimdi, aşağıda eklenen adımları izleyin:

1. Adım: Resmi çekin
Bu kılavuz boyunca, küçük (5MB) bir Linux görüntüsü olan Alpine kullanacağız. Başlamak için, aşağıdaki ekli komutu kullanarak görüntüyü yerel olarak indirin:

$ sudo docker alp çekme:3

Çıktı, başarılı görüntü çekme işlemini gösterir.

Adım 2: Ortam değişkenlerini iletme
–env bayrağını kullanarak, Docker kapsayıcımızı başlatırken ortam değişkenlerini anahtar/değer çiftleri olarak doğrudan komut istemine girebiliriz. Aşağıdaki ekli komutu örnek olarak kullanalım:

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

Bu komut için belirli bir çıktı olmayacak.

Adım 3: Ortam değişkenlerini yansıtma
Ortam değişkenlerini yansıtmak için, dışa aktarma anahtar sözcüğüyle birlikte aşağıdaki eklenen komutu kullanın.

$ dışa aktar VARIABLE2=foobar2

Bu komut için belirli bir çıktı olmayacak.

4. Adım: Ortam değişkenlerini belirtin
Şimdi ortam değişkeninin değerini belirtmeden terminalde aşağıdaki komutu kullanarak ortam değişkenini tanımlayalım:

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

Çıktıda, ortam değişkeninin docker konteynerine başarıyla aktarıldığını görebilirsiniz.

Çözüm

Bu yazıda, docker'da ortam değişkenlerinin kavramını ve önemini tartıştık. Ayrıca, bir ortam değişkenini liman işçisi konteynerine geçirmek için size adım adım kılavuz sağladık. Umarım ortam değişkenini bir liman işçisi konteynerine geçirirken sorun yaşamazsınız.