‫Bu bölümde, Swarm hakkında çok şey kapadık. Sürü, Yığınlar ve Sırlar, üretimde
‫işleri kolaylaştıran harika özelliklerin üçlemesi gibidir.
‫Compose dosyalarınızı alıp birkaç şekilde organize ederseniz bunun nasıl bir şey olabileceğini size göstermek isterim
‫ve bu temelde rüyayı
‫yaşamak olarak adlandırdığım şey de buydu.
‫Gerçekten çok şey yapmak için tek bir dosya kullanabilirsiniz, ancak bazen karmaşıklık büyür
‫ve birden çok Oluştur dosyasına ihtiyacınız olacak çıkıyor.
‫Gerçekten çabucak geçmek istiyorum.
‫Aslında bunu yapmak istemiyorsan, bunu kendin yapmak zorunda değilsin. Ben sadece bu Oluştur dosyalarının,
‫gittiğiniz çevreyi oluşturmak için birlikte nasıl çalıştığını gösteren bir örnek göstereceğim.
‫Bu senaryoda, docker'ın yerel kalkınma ortamımızı oluşturmak için kullanacağız.
‫Entegrasyon testi yapmak için CI ortamımız için bir liman yapıcısı konfigürasyonu ve dosyasını kullanacağız.
‫Ardından, üretim aşamasındayken, bu dosyaları, üretim ortamını bir yığınla dağıtmak
‫için docker yığını dağıtmak için kullanacağız. Yani, yerel makinedeyim ve örneği Drupal senaryosundan önce
‫bir veritabanı sunucusu ve bir web önyüzü ile kullanacağız.
‫Önceki ödevlerimizde kullandığımız Docker dosyasına sahibiz. drupal yapılandırmayı yeniden inşa ediyoruz.
‫Şablonlu özel, ancak basit,
‫Sonra varsayılan varsayılan oluşturma dosyasına sahip olacağız.
‫Buna bir geçersiz
‫kılma denir, ne yapmak üzereler Geçersiz kılma, standart Docker Oluşturma dosyamın olduğu
‫ve tüm ortamlarımda aynı olan varsayılanları ayarladığı yerdir.
‫Ardından, varsayılan olarak Docker Compose (Docker Oluştur) adlı bu geçersiz kılma dosyam var, bu ad tam olarak
‫adlandırılmışsa, limana göre liman oluşturuyor. geçersiz kılar. yml, bunu bir liman limonu oluşturduğumda otomatik olarak getirecektir.
‫çünkü yazacağımız elle yazılmış komutların yerel olarak en kolay olmasını istiyoruz.
‫Bu senaryoda yerel gelişmeyi varsayacağız,
‫Normalde CI ortamınızda, hepsi otomatiktir, bu komutların biraz daha uzun süre
‫devam etmesini umursamıyoruz.
‫Ancak biz gerçekten istiyoruz, yerel liman, limana kolay ulaşan liman sahibidir.
‫Docker Compose, bu dosyayı otomatik olarak okuyacak ve Docker Oluşturma
‫yml dosyasındaki tüm ayarları üste bindirecek veya geçersiz kılacak güzel şey.
‫Ve burada,
‫resim adımı bilmiyorum, çünkü burada zaten belirtilmiş durumda. oluşturmak istediğimi söyleyerek geçersiz kılıyorum.
‫Bu geçersiz kılma dosyasında, bu geçerli dizindeki Dockerfile'yi kullanarak görüntüyü yerel olarak
‫8080'de yerel kalkınma için bir bağlantı noktası oluşturmak istiyorum. Ve bazı ciltler oluşturuyorum ve sana burada, özel bir tema
‫oluşturduğum bir bind bağlamında bir örnek verdim fark edeceksin. Ve önceki bölümlerde yaptığımız gibi
‫ana temamdaki konuyu kapsayıcıya bağlamak istiyorum, böylece yerel olarak değiştirebilir
‫ve hemen sunucudan görebilirim.
‫Ve bu arada, bu örnek için aslında Drupal'da temaları nasıl geliştireceğimi bilmiyorum.
‫Orada bir dosyayı değiştirirsem otomatik olarak yansıtılacağından emin değilim.
‫vermek istedim, genellikle bu, her zaman Oluştur'u durdurup başlatmaya gerek kalmadan yapmanızın bir yoludur.
‫Web'de geliştirme yapmaya ne zaman başladıysanız bir örnek Postgres altında, çevre değişkenimiz ve daha
‫önce olduğu gibi gizli ayarları var. Tanımlanmış cümlelerimize sahibiz ve aşağıda göreceksiniz,
‫aslında dosya
‫tabanlı bir sırrım var; çünkü yerel gelişme gerçekleştirirken, dosya tabanlı sırrı kullanmamız
‫gerekiyor.
‫Bu prod'a veya test dosyalarına baktığımda biraz ilginç şeyler oluyor. Bunun nasıl işe
‫gideceğini unutmayın. geçersiz kılar. yml, Docker Compose komut satırı
‫tarafından otomatik olarak alınıyor. olarak belirtmek zorundayım.
‫Prod veya testte bunları manuel
‫Bu yüzden test için, -f komutunu kullanmamız gerekecek.
‫Önceki bölümlerden hatırlarsanız, -f, bir rıhtım ayarlayıcıyı seçtiğimizde, özel bir dosya
‫belirtmek istediğimizi belirtir. Sana bir dakika içinde göstereceğim.
‫Sonra üretimde, aslında bir Üretim Sunucusunda Docker Compose komut satırını
‫kullanmayacağımıza göre, burada yapacağımız şey aslında docker yapılandırma config komutu kullanacağımız.
‫Config komutu aslında birden fazla yapılandırma dosyasının çıktısını karıştırarak veya birleştirerek
‫bir çıktı yapacak.
‫Bu gerçekten harika olacak.
‫Gerçekten hızlı, test dosyasında sadece drupal ve postgres var.
‫Kodunun işlenişinde Jenkins CI veya Kodluluk CI çözümüm olup olmadığını her düşüncemde
‫düşünün ve onu buna çağırmak istiyorum ve test amacıyla bu
‫bağlantı noktasında olmasını istiyorum. Sonra sahte bir şifre kullanacağım. Ancak, ciltlerin herhangi birini tanımlamaya ihtiyacım
‫yok çünkü aslında yine adlandırılmış hacim verilerini tutmaya çalışmayacağım, çünkü yine CI platformu.
‫Testleri geçtiğinde veya testlerde başarısız olur olmaz her şeyden kurtulur.
‫belki bir FTP yüklemesini içeren bu örnek veri senaryosuna sahip olduğumu görebilirsiniz.
‫Sonra bu senaryoda, aslında CI çözümünüzde burada yalnızca oraya oturan veya özel bir
‫Git deposundan gelen belgeleri veya Veya CI'nizin başlatılması sırasında gerçekten bir
‫veritabanı dosyası yüklediğinde bir şey olur. Ve CI testi yaptığımız her seferinde
‫veritabanımızı oluşturmak zorunda kalmamak yerine, bu örnek veri dizinini postgres verilerimizin bulunduğu yere
‫yerleştireceğiz.
‫Bu şekilde, CI testi yaptığımızda her seferinde aynı numuneye sahip olduğumuzun garantisini veriyorduk.
‫Buna daha fazla girmeyeceğim. Bunun, CI için bu dosyanın
‫nasıl farklı olabileceğini göstermek istedim.
‫Sonra üretim aşamasında, normal üretim kaygımızın tamamına sahibiz. Belirli verilerimiz için
‫hacimler belirliyoruz. Sırrımızı belirliyoruz. Ve aşağıya dikkat edin, dış sırrımız var.
‫Çünkü daha önceki görevlerimizde yaptığımız gibi, sırrını zaten komut
‫satırından geçireceğiz.
‫Buradaki nokta, bu yapılandırmaların üçünün de bir şekilde farklı olmasıdır,
‫ancak hepsi çekirdeği yapılandırma veya yalnızca iki hizmeti ve resimleri tanımlayan temel yapılandırmayla ilgilidir.
‫Burayı görebilirsiniz. İşte neye benzediğini hatırlatan bir hatırlatma.
‫Bu işten çıkıp birkaç komut çalıştıralım.
‫Bu dizine bakarsam, temel dosyaya ve sonra üç geçersiz kılma dosyasına sahip olduğumu göreceksin.
‫Yine, hatırla, geçersiz kılma. yml varsayılan değerdir.
‫Bir rıhtım görevlisi yaparsam, aslında burada ne yapacağını rıhtım birliğini kullanın. yml önce ve ardından geçersiz
‫kılmanın üzerine bindirir. yml üstte Başladıktan sonra hızlıca göz
‫atabilmemiz için bir -d yazmayı istiyorum. Drupal imge üzerinde liman işçisi muayene yapacağım.
‫Ve sana göstermek istediğim şey burada, bütün metal parçalar listeleniyor.
‫Bu nedenle geçersiz kılma dosyasını aldığının farkındayız çünkü geçersiz kılma dosyası bu bağlantıların
‫hepsini tanımladık.
‫Bu yüzden onu aldığını biliyoruz.
‫Açıkçası, eğer birincil dosyayı almazsa, hangi görüntülerin kullanılacağını bile bilmiyordunuz, bu
‫nedenle bize şikayet ediyordu ve Oluşturma dosyası eksikti diyerek başlıyordu.
‫Çalıştı.
‫Gerçekten hızlı aşağı inelim.
‫Aslında CI çözümümüz için gerekli olan komutu yapacak olsaydık, CI çözümümüzde
‫yapmamız gereken şey, Docker Compose'un oradaydı ve kurulduğundan ve mevcut olduğundan emin olunmasıydı,
‫böylece dock oluşturucu komutları yapabilirdik. zaman önce olması gerektiği anlamına gelir.
‫Sonra -f'yi belirtebiliriz ve sonra f'nin sırası temel dosyanın her
‫Böylece liman limanını oluşturur, limana liman deneyi yapar.
‫Eğer bunu bir ucuyla, diğeri ile yapsaydık ve o aynı drupalı ​​inceledim ve denetlediysek,
‫bağlama parçalarının olmadığını fark edeceksin.
‫Tamamen eksik çünkü test dosyasında bunları belirtmedik.
‫Bilgiyi kaydetmek için aslında Drupal'a ihtiyaç duymadık çünkü CI
‫çalıştırmamızın sonunda atılmış olacaktı.
‫Ve sonra üçüncü olarak, üretim yapılandırmamız var.
‫Üretim yapılandırması biraz farklı olacak.
‫Yukarı Ok'a basacağım ve sonra burada eşyaları yapacağım. Yukarı komut yerine, burada
‫yapmak istediğim bir yapılandırmadır.
‫Yapılandırma için yardıma gerçekten hızlı bir şekilde bakarsanız, yalnızca iki seçenek sunar ve bu durumlardan
‫hiçbiri gerçekten bu konuyla alakalı değildir.
‫Yapmak istediğimiz sadece yapılandırmayı kendi başına çalıştırmaktır. Aslında yapacakları her iki dosyaya
‫da bakıp bunları tek bir Oluştur dosyası eşdeğeri haline getirmektir.
‫Burada yapabileceğimiz şey, bu komutu CI çözümümüzün herhangi bir yerinde çalıştırmaktır. biliyorsun, böyle bir şey.
‫Sonra bir dosyaya çıktısın, belki de Çıktı dosyası, yığınımızı oluşturmak veya güncellemek
‫için resmi olarak üretimde kullanacağımız çıktı dosyası olacaktır.
‫Ancak burada küçük bir uyarı atmak istiyorum.
‫Hepsi nispeten yeni şeyler.
‫Secrets and Swarm Stacks'in nispeten yeni olduğunu biliyoruz.
‫Onlar sadece birkaç aylıkken.
‫Bu kayıttan itibaren.
‫Yani bir çift kaba kenar var.
‫Sadece konfigürasyon komutunu çalıştırdık ve aslında sırların orada listelenmediğini fark edeceksin.
‫Bu şu anda bir böcek.
‫Aslında, Docker ekibi ile, o böceği ezip atamayacağımızı görmek için çalışıyorum.
‫Bu yüzden bunu okuduğunuz zaman, zaten düzeltilmiş olabilir.
‫Üretimde konuşlandırmadan önce yapılandırma satırının çıktısını kontrol ettiğinizden
‫emin olun.
‫burada tartışmadığım Uzantılar Oluştur seçeneğini belirttiğinizde, bu, aslında geçersiz kılma dosyasını kullandığınız dosyaları oluşturmayı
‫geçersiz kılmanın başka bir yoludur ve aslında orada bir genişletme bölümü tanımlarsınız.
‫İkincisi,
‫Bu biraz daha açıklayıcı, bu nedenle anlamak daha kolay. Bu bölümdeki referanslarda
‫bir bağlantı sağlayacağım. Sadece Extends seçeneğinin Swarms yığınlarında henüz çalışmadığını bilirsiniz.
‫Burada bahsetmedim, çünkü size umduğumuz tam uygulama yaşam döngüsü vermez, ancak
‫bir noktada bunlarla ilgili bir şeyler yapmasını bekleriz.
‫Ya Swarm'a ekleyin ya da daha iyi bir iş akışı yaratın. Çünkü bu gerçekten tüm bu araçlarla
‫buluşmaya çalıştığımız fikir, geliştirmeden test, üretim ve aynı yapılandırma setine kadar aynı görüntüler
‫dizisinde eksiksiz ve kolay bir ömür döngüsüne sahip olmaktır .
‫Umarım bu, uygulamalarınızı bu şekilde nasıl yönlendireceğinizi ve kendi kompozisyon
‫dosyalarınızı karmaşık senaryolara nasıl genişletebileceğinizi düşünmenizi sağladı.
‫Hiçbir şey, Docker ile yüzümde daha hızlı bir gülümseme koymadığından, biri daha önce yürütmek için birden fazla komut
‫dosyası almış bir şeyi yapmak için tek satırlık bir komut çalıştırdığımı görür.