Liman işçisi konteynerinin içindeki bir uygulamaya sır vermenin 3 yöntemi vardır. İlk 2 liman işçisi yapılandırmasını içeriyor. Sonuncusu, uygulamalarınızın doğrudan gizli bir mağazadan sır almasını sağlamaktır.
1 - Çevre değişkenleri
Göre "12 Faktör App" rehber , sırlar sadece yapılandırma vardır ve bunlar daima ortamında ayarlanmalıdır. Docker çalışması sırasında sırlarınızı çevre değişkenleri olarak ayarlayabilirsiniz ve uygulamanız bu noktalara erişir.
2 - Monte edilmiş hacimler
Sırlarınızı tümü belirli bir yapılandırma / sır dosyası içinde bulabilir, ardından örneğinize monte edilmiş bir birim olarak bağlayabilirsiniz .
3 - Gizli mağazadan al
@ 030'da belirtildiği gibi, Hashicorp Vault'u (veya "Amazon Secrets Manager" veya bunun gibi herhangi bir servisi) kullanabilirsiniz.
Uygulamanız veya bir sepet uygulaması, Docker kabındaki herhangi bir yapılandırma ile uğraşmak zorunda kalmadan doğrudan ihtiyaç duyduğu sırları getirebilir. Bu yöntem, Dinamik olarak oluşturulmuş sırları (bu tür sistemlerin çok çekici bir özelliği) kullanmanıza ve dosya sisteminden görülebilen sırlar veya dock kabının env değişkenlerini denetlemekten endişelenmenize gerek kalmayacaktır.
Kişisel görüş
Env değişkenlerinin gitmenin yolu olduğuna inanıyorum. Yönetilmesi daha kolaydır ve eğer CI inşa sistemi inşa sırasında sırları çekip dağıtırken onları ayarlattıysanız Hashicorp Vault gibi gizli bir mağazadan çekebilirsiniz. Her iki dünyanın da en iyisini elde edersiniz ve geliştiricilerinizin sırları almak için uygulama kodu yazması gerekmeyen ek avantajlarını elde edersiniz. Devs, kod işlevlerine odaklanmalı ve şifre alma gibi yönetici görevleriyle ilgilenmemelidir.
Uygulamanızın kodu, kendi uygulama işlevselliğine odaklanmalı ve şifre alma gibi arka uç görevleriyle ilgilenmemelidir. Tıpkı 12 Faktör Uygulamasında olduğu gibi.
Düzenleme: Geliştirici vs SysAdmin siloing ima kaldırmak için son cümle değiştirildi. Görevlerin kendileri kod perspektifinden ayrı olmalıdır, ancak DevOps, hem akılda tutulan hem de sınırlı olmamak üzere aynı kişilerle ilgilidir.
Kişisel Görüş (Güncelleme)
@ Dirk’in mükemmel yorumu ( Docker konteynerine sırları geçmek ), onları sızdırmak istemediği için ENV değişkenlerinde gizli bir mağazaya öncelik vermek konusunda çok güçlü bir argüman var.