Docker görüntülerini derleme ve Azure Container Registry'de yayımlama
Azure DevOps Services | Azure DevOps Server 2022
Azure Pipelines'ı kullanarak Docker görüntülerinizi derlemek ve Azure Container Registry'de yayımlamak için bir işlem hattı iş akışı ayarlayabilirsiniz. Bu makalede şunları nasıl yapacağınızı öğreneceksiniz:
- Azure Container Registry oluşturma
- Azure VM'de şirket içinde barındırılan aracı ayarlama
- Yönetilen hizmet kimliğini ayarlama
- Docker Kayıt Defteri hizmet bağlantısı oluşturma
- Görüntünüzü derleme ve Azure Container Registry'de yayımlama
Önkoşullar
Bir GitHub hesabı. henüz yoksa ücretsiz kaydolun.
Azure DevOps projenizdeki hizmet bağlantıları için Yönetici rolü.
Etkin aboneliği olan bir Azure hesabı. Henüz bir aboneliğiniz yoksa ücretsiz kaydolun.
Kodu alma
Bu öğreticiyle birlikte izleyebileceğiniz örnek uygulamayı çatal oluşturun veya kopyalayın.
https://github.com/MicrosoftDocs/pipelines-javascript-docker
Azure Container Registry oluşturma
Azure portala gidin.
Sol gezinti panelinden Kaynak oluştur'u ve ardından Kapsayıcılar'ı ve ardından Container Registry'yi seçin.
Aboneliğinizi seçin ve ardından Kaynak grubunuzu seçin veya yeni bir tane oluşturun.
Kapsayıcı kayıt defteriniz için bir Kayıt Defteri adı girin. Kayıt defteri adı Azure içinde benzersiz olmalı ve en az 5 karakter içermelidir.
Tercih ettiğiniz Konum ve SKU'yu ve ardından Gözden geçir ve oluştur'u seçin.
Ayarlarınızı gözden geçirin ve işiniz bittiğinde Oluştur'u seçin.
Şirket içinde barındırılan aracı VM'leri ayarlama
Docker görüntülerini Azure Container Registry'de yayımlamak için Azure Pipelines ile Yönetilen Hizmet Kimliği'ni kullanmak için azure vm'sinde kendi şirket içinde barındırılan aracımızı ayarlamamız gerekir.
VM oluşturma
Azure portala gidin.
Sol gezinti panelinden Kaynak oluştur'u ve ardından Sanal makine ->Oluştur'u seçin.
Aboneliğinizi seçin ve ardından kapsayıcı kayıt defterinizi oluşturmak için kullandığınız Kaynak grubunu seçin.
Sanal makinenize bir ad verin ve bir Görüntü seçin.
Kullanıcı Adınızı ve Parolanızı girin ve gözden geçir ve oluştur'u seçin.
Ayarlarınızı gözden geçirin ve işiniz bittiğinde Oluştur'u seçin.
Dağıtımınız tamamlandığında Kaynağa git’i seçin.
Aracı havuzu oluşturma
Azure DevOps projenizden dişli simgesini seçerek Proje ayarlarınıza gidin.
Aracı havuzları'nın ardından Havuz ekle'yi seçin.
Yeni'yi seçin ve havuz türü açılan menüsünden Şirket içinde barındırılan'ı seçin.
Havuzunuza bir ad verin ve ardından Tüm işlem hatlarına erişim izni ver onay kutusunu işaretleyin.
İşiniz bittiğinde Oluştur'u seçin.
Şimdi yeni oluşturduğunuz havuzu seçin ve ardından Yeni aracı'yı seçin.
Daha önce oluşturduğunuz VM'de aracınızı ayarlamak için bu penceredeki yönergeleri kullanacağız. İndir bağlantısını panonuza kopyalamak için Kopyala düğmesini seçin.
Kişisel erişim belirteci oluşturma
Azure DevOps projenizden Kullanıcı Ayarları'nı ve ardından Kişisel Erişim Belirteçleri'ni seçin.
Yeni bir Kişisel Erişim Belirteci oluşturmak için Yeni Belirteç'i seçin.
PAT'niz için bir ad girin ve bir son kullanma tarihi seçin.
Kapsamlar'da Özel tanımlı'yı ve ardından Tüm kapsamları göster'i seçin.
Aracı Havuzları ->Okuma ve yönetme ve Dağıtım Grupları ->Okuma ve yönetme'yi seçin.
İşiniz bittiğinde Oluştur'u seçin ve PAT'nizi güvenli bir konuma kaydedin.
Şirket içinde barındırılan aracı ayarlama
Azure portalında VM'nize bağlanın.
Yükseltilmiş bir PowerShell komut isteminde aracıyı indirmek için aşağıdaki komutu çalıştırın.
Invoke-WebRequest -URI <YOUR_AGENT_DOWNLOAD_LINK> -UseBasicParsing -OutFile <FILE_PATH> ##Example: Invoke-WebRequest -URI https://vstsagentpackage.azureedge.net/agent/2.213.2/vsts-agent-win-x64-2.213.2.zip -OutFile C:\vsts-agent-win-x64-2.213.2.zip
Aracınızı ayıklamak ve oluşturmak için aşağıdaki komutu çalıştırın.
mkdir agent ; cd agent Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("<FILE_PATH>", "$PWD")
Aracınızı yapılandırmaya başlamak için aşağıdaki komutu çalıştırın.
.\config.cmd
Giriş istendiğinde sunucu URL'nizi girin. Örnek: https://dev.azure.com/fabrikamFiber
PAT kimlik doğrulamasını seçmek için kimlik doğrulama türü istendiğinde Enter tuşuna basın.
Daha önce oluşturduğunuz kişisel erişim belirtecinizi yapıştırın ve enter tuşuna basın.
Aracı havuzunuzun adını girin ve ardından aracı adınızı girin.
İş klasörü için varsayılan değeri bırakın ve aracınızı hizmet olarak çalıştırmak istiyorsanız Y girin.
Aracı işleri dinlemeye başlamaya hazır olduğuna göre docker'ı sanal makinemize yükleyelim. Docker'ı indirmek için aşağıdaki komutu çalıştırın.
Invoke-WebRequest -URI https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe -OutFile <DOWNLOAD_PATH>
İndirme yolunuz gidin ve ardından Docker'ı yüklemek ve başlatmak için aşağıdaki komutu çalıştırın.
Start-Process 'Docker%20Desktop%20Installer.exe' -Wait install
Şimdi aracı klasörünüze dönün ve aracıyı Azure VM'nizde çalıştırmak için cmd dosyasını çalıştırın.
.\run.cmd
Aracınız artık Azure DevOps portalındaki Aracı havuzu ->Agents içinde listelenmelidir.
Yönetilen kimliği ayarlama
Azure portalında, daha önce oluşturduğunuz VM'ye gidin.
Sol gezinti panelinden Kimlik'i seçin ve ardından Sistem tarafından atanan kimliği etkinleştirin.
İşiniz bittiğinde Kaydet'i seçin ve seçiminizi onaylayın.
Azure rol atamaları'yı ve ardından Rol ataması ekle'yi seçin.
Kapsam açılan menüsünden Kaynak grubu'na tıklayın.
Aboneliğinizi ve Kaynak grubunuzu seçin ve ardından AcrPush rolünü seçin.
AcrPull rolünü eklemek için 5 . 6. adımları yineleyin.
Docker kayıt defteri hizmeti bağlantısı oluşturma
Azure DevOps projenizden dişli simgesini seçerek Proje ayarlarınıza gidin.
Sol bölmeden Hizmet bağlantıları'nı seçin.
Yeni hizmet bağlantısı'nı ve ardından Docker Kayıt Defteri'ni ve ardından İleri'yi seçin.
Azure Container Registry'yi ve ardından Kimlik Doğrulama Türünüz olarak Yönetilen Hizmet Kimliği'ni seçin.
Abonelik Kimliği Abonelik adınızı ve Azure kapsayıcı kayıt defteri oturum açma sunucunuzu girin. Önceki adımda oluşturduğunuz VM'nizin sistem tarafından atanan Kiracı Kimliğini Kiracı Kimliği metin alanına yapıştırın.
Hizmet bağlantınız için bir ad girin ve ardından Tüm işlem hatlarına erişim izni ver onay kutusunu işaretleyin. Bu seçeneği seçmek için hizmet bağlantısı Yönetici rolü gerekir.
İşiniz bittiğinde Kaydet'i seçin.
Azure Container Registry'yi derleme ve yayımlama
Azure DevOps projenizden İşlem Hatları'nın ardından İşlem Hattı Oluştur'u seçin.
Kaynak kodunuzu (Azure Repos, GitHub vb.) barındıran hizmeti seçin.
Deponuzu seçin ve ardından Başlangıç işlem hattı'na tıklayın.
Varsayılan yaml işlem hattını silin ve aşağıdaki kod parçacığını kullanın:
trigger: - main variables: dockerRegistryServiceConnection: '<SERVICE_CONNECTION_NAME>' imageRepository: '<IMAGE_NAME>' dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile' tag: '$(Build.BuildId)' stages: - stage: Build displayName: Build and publish stage jobs: - job: Build displayName: Build job pool: name: '<YOUR_AGENT_POOL_NAME>' steps: - task: DockerInstaller@0 inputs: dockerVersion: '17.09.0-ce' - task: Docker@2 displayName: Build and publish image to Azure Container Registry inputs: command: buildAndPush containerRegistry: $(dockerRegistryServiceConnection) repository: $(imageRepository) dockerfile: $(dockerfilePath) tags: | $(tag)
İşlem hattı çalıştırması tamamlandıktan sonra Azure'da görüntünüzü doğrulayabilirsiniz. Azure portalında Azure Container Registry'nize gidin ve Depolar'ı seçin.
Kaynakları temizleme
Bu uygulamayı kullanmaya devam etmek istemiyorsanız, devam eden ücretlerden kaçınmak için kaynak grubunu silin.
az group delete --name myapp-rg