Menggunakan Docker YAML untuk membangun dan mendorong gambar Docker ke Azure Container Registry
Azure DevOps
Tutorial ini menunjukkan kepada Anda cara menggunakan alur berdasarkan templat Azure Pipelines Docker untuk membangun aplikasi kontainer dan mendorongnya ke Azure Container Registry. Templat menyiapkan alur YAML integrasi berkelanjutan di mana perubahan repositori kode baru memicu alur untuk membangun dan menerbitkan gambar Docker yang diperbarui ke registri.
Alur templat kontainer Docker menggunakan agen yang dihosting Microsoft dan membuat koneksi layanan berbasis perwakilan layanan ke Azure Container Registry. Untuk alur yang melakukan proses serupa dengan menggunakan agen yang dihost sendiri dan koneksi layanan yang Anda buat sendiri, lihat Membangun dan mendorong gambar Docker ke Azure Container Registry.
Prasyarat
Akun Azure tempat Anda memiliki izin untuk membuat dan mengonfigurasi sumber daya. Jika Anda tidak memiliki akun Azure, daftar untuk akun gratis.
Organisasi dan proyek Azure DevOps tempat Anda memiliki izin untuk membuat alur dan menyebarkan aplikasi. Untuk membuat organisasi atau proyek, lihat Membuat organisasi baru atau Membuat proyek di Azure DevOps.
Akun GitHub.
Penting
Saat Anda menggunakan GitHub dalam prosedur berikut, Anda mungkin diminta untuk membuat koneksi layanan GitHub, masuk ke GitHub, mengautentikasi ke organisasi GitHub, menginstal Azure Pipelines, atau mengotorisasi Azure Pipelines. Ikuti instruksi di layar untuk menyelesaikan proses. Untuk informasi selengkapnya, lihat Akses ke repositori GitHub.
Mendapatkan aplikasi sampel
Di GitHub, fork atau kloning repositori aplikasi Sample Docker dan Kubernetes Node.JS.
Membuat registri kontainer
Dari portal Azure, masuk ke Azure Cloud Shell dengan memilih ikon di bilah menu atas. Pastikan untuk menggunakan shell Bash .
Di Cloud Shell, jalankan perintah berikut untuk membuat grup sumber daya dan registri kontainer Azure dengan menggunakan Azure CLI. Nama Container Registry harus huruf kecil.
az group create --name myapp-rg --location eastus az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
Untuk menyebarkan gambar Docker ke registri kontainer Azure, Anda harus mengaktifkan akun pengguna admin untuk registri, yang dinonaktifkan secara default. Untuk mengaktifkan pengguna admin untuk registri Anda, gunakan
--admin-enabled
parameter denganaz acr update
perintah . Untuk informasi dan instruksi selengkapnya, lihat Akun admin.az acr update -n <acrName> --admin-enabled true
Atau, Anda dapat menggunakan UI portal Azure untuk membuat registri kontainer Azure Anda. Untuk petunjuknya, lihat Membuat registri kontainer. Aktifkan akun admin di Properti setelah Anda membuat registri.
Membuat alur
Dalam proyek Azure DevOps Anda, pilih Alur Alur> baru, atau Buat alur jika alur ini adalah yang pertama dalam proyek.
Pilih GitHub sebagai lokasi kode sumber Anda.
Pada layar Pilih repositori, pilih repositori kode sampel Anda.
Pada layar Konfigurasikan alur Anda, pilih Docker: Bangun dan dorong gambar ke alur Azure Container Registry.
Pada layar Docker, pilih langganan Azure Anda lalu pilih Lanjutkan.
Pilih registri Kontainer Anda dari menu dropdown, berikan Nama Gambar, lalu pilih Validasi dan konfigurasikan.
Azure Pipelines menghasilkan file azure-pipelines.yml yang menentukan alur Anda.
Tinjau kode di azure-pipelines.yml, lalu pilih Simpan dan jalankan.
Secara opsional edit pesan Terapkan dan berikan deskripsi. Lalu pilih Simpan dan jalankan lagi untuk menerapkan file azure-pipelines.yml ke repositori Anda dan memulai build.
Halaman eksekusi build menunjukkan detail dan kemajuan build. Untuk menonton alur Anda beraksi, pilih Bangun di bawah Pekerjaan.
Detail alur
Alur dihasilkan dari templat kontainer Docker. Tahap build menggunakan tugas Docker v2 untuk membangun dan mendorong gambar Docker Anda ke registri kontainer.
Tugas Docker menggunakan koneksi layanan registri Docker dengan autentikasi perwakilan layanan untuk memungkinkan alur Anda mendorong gambar ke registri kontainer Anda. Templat kontainer Docker menghasilkan koneksi layanan ini saat membuat alur.
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
Membersihkan sumber daya
Setelah selesai menggunakan sumber daya yang Anda buat dalam tutorial ini, Anda dapat menghapusnya untuk menghindari dikenakan biaya lebih lanjut. Jalankan perintah Cloud Shell berikut untuk menghapus grup sumber daya Anda dan semua sumber daya di dalamnya.
az group delete --name myapp-rg