Menggunakan Azure Pipelines untuk membangun dan mendorong gambar kontainer ke registri
Layanan Azure DevOps
Artikel ini memandu Anda melalui pembuatan alur untuk membangun dan mendorong gambar Docker ke Azure Container Registry atau Docker Hub.
Prasyarat
Produk | Persyaratan |
---|---|
Azure DevOps | - Proyek Azure DevOps. Izin - : - Untuk memberikan akses ke semua alur dalam proyek: Anda harus menjadi anggota grup Administrator Proyek . - Untuk membuat koneksi layanan: Anda harus memiliki peran Administrator atau Creator untuk koneksi layanan . - Jika Anda menggunakan agen yang dihost sendiri, pastikan Docker diinstal dan mesin Docker berjalan dengan hak istimewa yang ditingkatkan. Agen yang dihosting Microsoft telah menginstal Docker sebelumnya. |
GitHub | - Akun GitHub. - Repositori GitHub dengan Dockerfile. Gunakan repositori sampel - Koneksi layanan GitHub untuk mengotorisasi Azure Pipelines. |
Azure | - Langganan Azure - . - Sebuah Azure Container Registry. |
Produk | Persyaratan |
---|---|
Azure DevOps | - Proyek Azure DevOps. Izin - : - Untuk memberikan akses ke semua alur dalam proyek: Anda harus menjadi anggota grup Administrator Proyek . - Untuk membuat koneksi layanan: Anda harus memiliki peran Administrator atau Creator untuk koneksi layanan . - Jika Anda menggunakan agen yang dihost sendiri, pastikan Docker diinstal dan mesin Docker berjalan dengan hak istimewa yang ditingkatkan. Agen yang dihosting Microsoft telah menginstal Docker sebelumnya. |
GitHub | - Akun GitHub. - Repositori GitHub dengan Dockerfile. Gunakan repositori sampel - Koneksi layanan GitHub untuk mengotorisasi Azure Pipelines. |
Docker Hub | - Akun Docker Hub. - Repositori gambar Docker Hub. |
Membuat koneksi layanan registri Docker
Sebelum mendorong gambar kontainer ke registri, Anda perlu membuat koneksi layanan di Azure DevOps. Koneksi layanan ini menyimpan kredensial yang diperlukan untuk mengautentikasi dengan aman dengan registri kontainer. Untuk informasi selengkapnya, lihat koneksi layanan Docker Registry.
Di proyek Azure DevOps Anda, pilih pengaturan Project>Koneksi layanan.
Pilih Koneksi Layanan Baru dan Docker Registry.
Pilih Docker Hub
dan masukkan informasi berikut: Lapangan Deskripsi ID Docker Masukkan ID Docker Anda. Kata Sandi Docker Masukkan kata sandi Docker Anda. nama koneksi layanan Masukkan nama untuk koneksi layanan. Memberikan izin akses ke semua alur Pilih opsi ini untuk memberikan akses ke semua alur. Pilih Verifikasi dan simpan.
Membuat pipeline untuk mengembangkan dan mendorong image Docker
Tugas Docker@2 digunakan untuk membangun dan mendorong gambar ke registri kontainer. Tugas Docker@2 dirancang untuk menyederhanakan proses membangun, mendorong, dan mengelola gambar Docker dalam Azure Pipelines Anda. Tugas ini mendukung berbagai perintah Docker, termasuk build, push, login, logout, start, stop, dan run.
Gunakan langkah-langkah berikut untuk membuat alur YAML yang menggunakan tugas Docker@2 untuk membangun dan mendorong gambar.
Di proyek Azure DevOps Anda, pilih Pipelines dan New pipeline.
Pilih GitHub sebagai lokasi kode sumber Anda dan pilih repositori Anda.
- Jika Anda dialihkan ke GitHub untuk masuk, masukkan kredensial GitHub Anda.
- Jika Anda dialihkan ke GitHub untuk menginstal aplikasi Azure Pipelines, pilih Setujui dan instal.
Pilih repositori Anda.
Pilih templat alur Starter untuk membuat konfigurasi alur dasar.
Ganti konten azure-pipelines.yml dengan kode berikut:
trigger: - main pool: vmImage: 'ubuntu-latest' variables: repositoryName: '<target repository name>' steps: - task: Docker@2 inputs: containerRegistry: '<docker registry service connection>' repository: $(repositoryName) command: 'buildAndPush' Dockerfile: '**/Dockerfile'
Sunting file YAML pipeline sebagai berikut:
- Ganti
<target repository name>
dengan nama repositori di registri kontainer tempat Anda ingin mendorong gambar. - Ganti
<docker registry service connection>
dengan nama koneksi layanan registri Docker yang Anda buat sebelumnya.
- Ganti
Setelah selesai, pilih Simpan dan jalankan>Simpan dan jalankan.
Pilih Pekerjaan untuk melihat log dan memverifikasi alur berhasil dijalankan.
-
YAML
- Klasik
Buka proyek Azure DevOps Anda dan pilih Alur dari menu sebelah kiri.
Pilih Alur baru.
Pilih GitHub sebagai lokasi kode sumber Anda dan pilih repositori Anda.
- Jika Anda dialihkan ke GitHub untuk masuk, masukkan kredensial GitHub Anda.
- Jika Anda dialihkan ke GitHub untuk menginstal aplikasi Azure Pipelines, pilih Setujui dan instal.
Pilih template Docker - Membangun dan mendorong sebuah image ke Azure Container Registry.
Pilih langganan Azure Anda dan Lanjutkan.
Pilih Container Registry Anda, lalu pilih Validasi dan konfigurasikan.
Contoh alur YAML:
# Docker # Build and push an image to Azure Container Registry # https://docs.microsoft.com/azure/devops/pipelines/languages/docker trigger: - main resources: - repo: self variables: # Container registry service connection established during pipeline creation dockerRegistryServiceConnection: '7f9dc28e-5551-43ee-891f-33bf61a995de' imageRepository: 'usernamepipelinesjavascriptdocker' containerRegistry: 'repoistoryname.azurecr.io' dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile' tag: '$(Build.BuildId)' # Agent VM image name vmImageName: 'ubuntu-latest' stages: - stage: Build displayName: Build and push stage jobs: - job: Build displayName: Build 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)
Pilih Simpan dan jalankan dan Simpan dan jalankan lagi.
Pilih Pekerjaan untuk melihat log dan memverifikasi pipeline berhasil dijalankan.
Templat Docker membuat koneksi layanan ke Azure Container Registry Anda dan menggunakan tugas Docker@2 untuk membangun dan mendorong gambar Docker ke registri.
Tugas Docker@2 dirancang untuk menyederhanakan proses membangun, mendorong, dan mengelola gambar Docker dalam Azure Pipelines Anda. Tugas ini mendukung berbagai perintah Docker, termasuk build, push, login, logout, start, stop, dan run.
Saat menggunakan agen yang dihost sendiri, pastikan Docker diinstal pada host agen, dan mesin/daemon Docker berjalan dengan hak istimewa yang ditingkatkan.