Şirketin herhangi bir altyapıya sahip olmayan başlangıç teknik ekibinin kod yönetimi ve otomatik dağıtım gibi bir dizi araç oluşturması gerekiyordu ... Bu nedenle, iki gün süren ve ortada çeşitli sorunlarla karşılaşan, ancak sonunda çeşitli sorunlarla karşılaşan aşağıdaki dağıtım süreci dizisi tetiklendi Tüm temel araçlar başarıyla oluşturuldu, evet ~, oluşturma sürecine bir göz atalım.
Bir sunucu, CentOS, şirket geçici bir sunucu olarak düşük konfigürasyonlu bir sunucu verdi, yolu yok, sadece yap.
Düşünme: Yüklemek için geleneksel yum kullanırsam, kesinlikle benim tarafımdan berbat olur ve kendi başıma yönetmek ve bakımını yapmak uygun olmaz. Bir ikilem içindeyken Dokcer'i seçtim. Belki bazı arkadaşlar Docker'ın ne olduğunu ve nasıl kullanılacağını soruyor. Burada panik yapmayın. Portal:
https://segmentfault.com/a/1190000016254236#articleHeader0
Bir dizi PHP test ortamını hızlı bir şekilde oluşturmak için laradock kullanmaya karar verdim. Çok sayıda dosya olmasına rağmen, kapsüllenmiş kısımlar nispeten eksiksizdir. Sonraki geliştirmede hangi teknolojinin kullanılacağını bilmediğim için önce bunu kullanmaya karar verdim ve istediğim zaman kullanmaya başlayabilirim. hizmet.
Laradock'un resmi belgelerinde verilen giriş de çok kapsamlıdır.Burada kullandığım yöntem birden çok proje kümesini dağıtmaktır. Dizin yapısı aşağıdaki gibidir:
+ laradock + proje-1 + proje-21. klon https://github.com/laradock/laradock
2.cp env-example .env
Env'deki yapılandırma kendi durumunuza göre değiştirilebilir ve ayarlanabilir
3. docker-compose up -d nginx php-fpm mysql redis
Başlamak istediğiniz programı tavşanmq, mongo vb. Arkadan ekleyebilirsiniz. Gerektiğinde sonuna ekleyerek başlatabilirsiniz.İlk başlama zamanı biraz uzundur.
4. docker-compose exec --user = laradock çalışma alanı bash
Composer, laravel gibi projeler için vazgeçilmez olmalıdır Çalışma alanına girmek için bu komutu çalıştırdıktan sonra composer'ı çalıştırabilirsiniz.
5. docker-compose exec nginx nginx -s yeniden yükleme
Nginx yapılandırmasını her değiştirdiğimde yeniden başlatmak için nginx konteynırına girmem gerekip gerekmediğini veya tüm konteyneri yeniden başlatmam gerekip gerekmediğini kesinlikle soracak. Nginx site yapılandırma dosyası nerede: ./laradock/nginx/sites/
Önce deneyin.
Artık işletim ortamı kurulduğuna göre, kodumu nasıl depolamalıyım? Aslında, gerçek durumuma bağlı olarak GitHub, Code Cloud, GitLab vb. Gibi birçok seçenek var, GitLab'ı seçtim, ancak ilk başta bulamadım. Laradock aslında GitLab hizmetleri sağlar. . Sadece kendim atabilirim, aslında çok basit.
docker \ run-d \ -p443: 443 \ -p8080: 80 \ -p222: 22 \ - namegitlab \ - restartalways \ -v / home / gitlab / config: / etc / gitlab \ -v / home / gitlab / günlükler: / var / log / gitlab \ -v / home / gitlab / data: / var / opt / gitlab \ gitlab / gitlab-ce # Parametre açıklaması: # -d: Konteynerin arka planda çalışmasına izin verin # -p: Bağlantı noktasını açığa çıkarın, koyun Konteynerin 443 numaralı bağlantı noktası, ana bilgisayarın 443 numaralı bağlantı noktasını işaret eder ve ana bilgisayar 8080'dir. > Konteyner 80, ana bilgisayar 222- > Kapsayıcı 22 # Ana bilgisayar bağlantı noktası kendi durumunuza göre özelleştirilebilir. # -Name Mevcut olanı çoğaltmadığı sürece kapsayıcınıza bir ad verin. # - yeniden başlat Kaptan çıktığında docker yeniden başlatılıyor mu? # - v Bu askıda kalıyor Diski yükleyin, ana bilgisayarın dizinini konteynere bağlayın, böylece konteyner bozuk olsa bile içeriğim kaybolmaz. #Host machine / home / gitlab / config dizini container / etc / gitlab dizinine bağlanır, ana makine dizini kendi durumunuza göre belirlenir # gitlab / gitlab-ce bu başlatılacak görüntüdür, eğer görüntü yoksa docker otomatik olarak indirecektir yeniKonteyner başarılı bir şekilde başlatıldıktan sonra GitLab'ı başlatmak için bir süre olacaktır.Başlatmanın başarılı olduğunu görürseniz hemen erişemezsiniz. Biraz bekleyin. Yapılandırma dosyaları belirttiğiniz ana bilgisayar dizininde değiştirilebilir. Değiştirilecek içerik aşağıdaki gibidir :
gitlab_rails = 'Ana Bilgisayar IP'si' # Ana bilgisayarın IP adresi gitlab_rails = 222 # Ana makineye açık ssh bağlantı noktası external_url'domain adı '# gitlab'a atanan etki alanı adı, nginx'i 8080 bağlantı noktasına ters proxy olarak kullanabilirsinizOtomatik dağıtımı elde etmenin birçok yolu vardır, örneğin: webhook, Jenkins, Travis CI, vb. Seçimim Jenkins, çünkü onu dağıtımdan önce kullandım, bu yüzden hala burada kullanıyorum. Laradock hala Jenkins hizmeti veriyor ve bunun sebebi onu kendi başıma oluşturulmuş bulmadığım için. Bir. . . Görünüşe göre bir dahaki sefere daha yakından bakmak zorundasın.
dockerrun-d \ - namemyjenkins \ -p8181: 8080 \ -p50000: 50000 \ -v / home / jenkins /: / var / jenkins_home \ jenkins / jenkins # Parametre açıklaması # -d: Konteyner arka planda çalışsın # -p: Expose Bağlantı noktası, ana bilgisayar 8181 > Konteyner 8080, ana bilgisayar 50000- > Konteyner 50000 # -v Bu, diski takmak içindir.Kapsayıcı bozuk olsa bile içeriğim kaybolmayacak şekilde ana bilgisayarın dizinini konteynere bağlayın. #Host machine / home / jenkins / dizini container / var / jenkins_home dizinine monte edilir, ana makine dizini kendi durumunuza göre belirlenirÇok basit değil mi ~. ~, Ancak, Jenkins başarıyla kurulduktan sonra bir başlatma şifresi olacaktır.Başlatma şifresi nasıl kontrol edilir? İki yol vardır:
# Dockerlog'ların ilk yolu < Kapsayıcı adınız > # Böylece, kapsayıcı çıktısının içeriğini görüntüleyebilirsiniz # İkinci yol cat / home / jenkins / secrets / initialAdminPassword # Buradaki good / home / jenkins'in, bağladığınız dizinle değiştirilmesi gerekirYukarıda edindiğiniz başlatma şifresini girin, seçtiğim bir sonraki adım önerilen kurulumdur, daha sonra ihtiyacınız olursa yüklemek için eklenti kitaplığına gidebilirsiniz.
Başarılı başlatmadan sonra, sistem ayarlarına gidin. > Eklenti yönetimi birkaç gerekli eklentiyi kurar:
PublishOverSSHGitLabPlugin # Gitlab kullandığı için, bu NodeJSPlugin # The Vue'yi ön uçta kurmamız gerekiyor, bu yüzden node kullanmamız gerekiyor1. Temel yapılandırma
Eklentiyi kurduktan sonra, jdk, node, ssh vb. Gibi bazı temel içerikleri yapılandırmanız gerekir.
1.ssh kurulumu
Girin: Jenkins'i Yönetin- > Sistemi Yapılandır
Gelişmiş'i tıklayın:
Bağlantının başarılı olup olmadığını test etmek için Yapılandırmayı Test Et'e tıklayın
2.jdk, git
Girin: Jenkins'i Yönetin- > Global Araç Yapılandırması
Burada jdk ve git'in otomatik kurulumunu kullanıyorum. Jdk kurulduğunda, bir hesap gerekiyor. Sadece kayıt ol.
3. nodejs kurulumu
İki, bir proje yarat
Üç, konfigürasyon mühendisliği
Oluşturulacak birkaç sürümü saklamak için ayarlayın
Git kaynak kodu aracını kullanın, git adresini girin, git kullanıcısı ekleyin
eğer; thenrmtestv.tar.gzfitar-zcvftest.tar.gz ./*Projeyi neden burada paketleyelim, çünkü aşağıda yapılandırılacak ssh klasör aktarımını desteklemiyor, bu nedenle önce içeriği paketlemeniz ve ardından paketi açmak için sunucuya gitmeniz gerekiyor
Her şeyi kaydedin ve inşa etmeye gidebilirsiniz. Evet ~