Membuat dan menerbitkan gambar Docker ke Azure Container Registry
Layanan Azure DevOps | Azure DevOps Server 2022
Dengan menggunakan Azure Pipelines, Anda dapat menyiapkan alur kerja untuk membangun dan menerbitkan gambar Docker Anda ke Azure Container Registry. Dalam artikel ini, Anda akan mempelajari cara:
- Membuat Azure Container Registry
- Menyiapkan agen yang dihost sendiri di Azure VM
- Menyiapkan identitas layanan terkelola
- Membuat koneksi layanan Docker Registry
- Membangun dan menerbitkan gambar Anda ke Azure Container Registry
Prasyarat
Akun GitHub. mendaftar secara gratis, jika Anda belum memilikinya.
Peran Administrator untuk koneksi layanan di proyek Azure DevOps Anda.
Akun Azure dengan langganan aktif. Daftar gratis jika Anda belum memilikinya.
Mendapatkan kode
Fork atau kloning aplikasi sampel untuk diikuti bersama dengan tutorial ini.
https://github.com/MicrosoftDocs/pipelines-javascript-docker
Membuat Azure Container Registry
Navigasi ke portal Azure.
Pilih Buat sumber daya dari panel navigasi kiri, lalu pilih Kontainer lalu Container Registry.
Pilih Langganan Anda lalu pilih Grup sumber daya Anda atau buat yang baru.
Masukkan Nama registri untuk registri kontainer Anda. Nama registri harus unik dalam Azure dan harus berisi setidaknya 5 karakter.
Pilih Lokasi dan SKU pilihan Anda lalu pilih Tinjau + buat.
Tinjau pengaturan Anda lalu pilih Buat setelah selesai.
Menyiapkan VM agen yang dihost sendiri
Untuk menggunakan Identitas Layanan Terkelola dengan Azure Pipelines untuk menerbitkan gambar Docker ke Azure Container Registry, kita harus menyiapkan agen yang dihost sendiri di Azure VM.
Membuat VM
Navigasi ke portal Azure.
Pilih Buat sumber daya dari panel navigasi kiri, lalu pilih Komputer virtual ->Buat.
Pilih Langganan Anda lalu pilih Grup sumber daya yang Anda gunakan untuk membuat registri kontainer Anda.
Beri nama komputer virtual Anda dan pilih Gambar.
Masukkan Nama Pengguna dan Kata Sandi Anda, lalu pilih Tinjau + buat.
Tinjau pengaturan Anda, lalu pilih Buat setelah selesai.
Pilih Buka sumber daya saat penyebaran selesai.
Membuat kumpulan agen
Dari proyek Azure DevOps Anda, pilih ikon gigi untuk menavigasi ke pengaturan Proyek Anda.
Pilih Kumpulan agen, lalu pilih Tambahkan kumpulan.
Pilih Baru, lalu pilih Dihost sendiri dari menu dropdown Jenis kumpulan.
Beri nama kumpulan Anda, lalu centang Kotak centang Berikan izin akses ke semua alur .
Pilih Buat setelah selesai.
Sekarang pilih kumpulan yang baru saja Anda buat, lalu pilih Agen baru.
Kami akan menggunakan instruksi di jendela ini untuk menyiapkan agen Anda di VM yang Anda buat sebelumnya. Pilih tombol Salin untuk menyalin tautan unduhan ke clipboard Anda.
Membuat token akses pribadi
Dari proyek Azure DevOps Anda, pilih Pengaturan Pengguna, lalu pilih Token Akses Pribadi.
Pilih Token Baru untuk membuat Token Akses Pribadi baru.
Masukkan nama untuk PAT Anda, lalu pilih tanggal kedaluwarsa.
Pilih Kustom yang ditentukan dalam Cakupan, lalu pilih Perlihatkan semua cakupan.
Pilih Kumpulan Agen ->Baca & kelola, dan Grup Penyebaran ->Baca &kelola.
Pilih Buat setelah selesai, dan simpan PAT Anda di lokasi yang aman.
Menyiapkan agen yang dihost sendiri
Di portal Azure, sambungkan ke VM Anda.
Dalam prompt perintah PowerShell yang ditingkatkan, jalankan perintah berikut untuk mengunduh agen.
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
Jalankan perintah berikut untuk mengekstrak dan membuat agen Anda.
mkdir agent ; cd agent Add-Type -AssemblyName System.IO.Compression.FileSystem ; [System.IO.Compression.ZipFile]::ExtractToDirectory("<FILE_PATH>", "$PWD")
Jalankan perintah berikut untuk mulai mengonfigurasi agen Anda.
.\config.cmd
Masukkan URL server Anda saat dimintai input. Contoh: https://dev.azure.com/fabrikamFiber
Tekan Enter saat dimintai jenis autentikasi untuk memilih autentikasi PAT .
Tempelkan token akses pribadi yang Anda buat sebelumnya lalu tekan enter.
Masukkan nama kumpulan agen Anda, lalu masukkan nama agen Anda.
Biarkan nilai default untuk folder kerja, lalu masukkan Y jika Anda ingin menjalankan agen Anda sebagai layanan.
Sekarang setelah agen siap untuk mulai mendengarkan pekerjaan, mari kita instal Docker di VM kita. Jalankan perintah berikut untuk mengunduh Docker.
Invoke-WebRequest -URI https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe -OutFile <DOWNLOAD_PATH>
Navigasikan ke jalur unduhan Anda, lalu jalankan perintah berikut untuk menginstal dan memulai Docker.
Start-Process 'Docker%20Desktop%20Installer.exe' -Wait install
Sekarang navigasikan kembali ke folder agen Anda, dan jalankan file cmd untuk menjalankan agen di Azure VM Anda.
.\run.cmd
Agen Anda harus dicantumkan sekarang di kumpulan Agen Anda ->Agen di portal Azure DevOps.
Menyiapkan identitas terkelola
Di portal Azure, navigasikan ke VM yang Anda buat sebelumnya.
Pilih Identitas dari panel navigasi kiri, lalu aktifkan Identitas yang ditetapkan sistem.
Pilih Simpan setelah selesai, lalu konfirmasikan pilihan Anda.
Pilih Penetapan peran Azure, pilih Tambahkan penetapan peran.
Pilih Grup sumber daya dari menu dropdown Cakupan .
Pilih Langganan dan grup Sumber Daya Anda, lalu pilih peran AcrPush.
Ulangi langkah 5 & 6 untuk menambahkan peran AcrPull .
Membuat koneksi layanan registri Docker
Dari proyek Azure DevOps Anda, pilih ikon gigi untuk menavigasi ke pengaturan Proyek Anda.
Pilih Koneksi layanan dari panel kiri.
Pilih Koneksi layanan baru, lalu pilih Docker Registry lalu Berikutnya.
Pilih Azure Container Registry, lalu pilih Identitas Layanan Terkelola sebagai Jenis Autentikasi Anda.
Masukkan nama Langganan ID Langganan Anda, dan server masuk registri kontainer Azure Anda. Tempelkan ID Penyewa yang ditetapkan sistem VM yang Anda buat di langkah sebelumnya di bidang teks ID Penyewa.
Masukkan nama untuk koneksi layanan Anda, lalu centang kotak Beri izin akses ke semua alur . Untuk memilih opsi ini, Anda memerlukan peran Administrator koneksi layanan.
Pilih Simpan saat Anda selesai.
Membangun dan menerbitkan ke Azure Container Registry
Dari proyek Azure DevOps Anda, pilih Alur lalu pilih Buat Alur.
Pilih layanan yang menghosting kode sumber Anda (Azure Repos, GitHub, dll.).
Pilih repositori Anda, lalu pilih Alur pemula.
Hapus alur yaml default dan gunakan cuplikan berikut:
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)
Setelah eksekusi alur selesai, Anda dapat memverifikasi gambar Anda di Azure. Navigasi ke Azure Container Registry Anda di portal Azure, lalu pilih Repositori.
Membersihkan sumber daya
Jika Anda tidak berencana untuk terus menggunakan aplikasi ini, hapus grup sumber daya untuk menghindari dikenakan biaya yang sedang berlangsung.
az group delete --name myapp-rg