Bagikan melalui


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

Mendapatkan kode

Fork atau kloning aplikasi sampel untuk diikuti bersama dengan tutorial ini.

https://github.com/MicrosoftDocs/pipelines-javascript-docker

Membuat Azure Container Registry

  1. Navigasi ke portal Azure.

  2. Pilih Buat sumber daya dari panel navigasi kiri, lalu pilih Kontainer lalu Container Registry.

  3. Pilih Langganan Anda lalu pilih Grup sumber daya Anda atau buat yang baru.

  4. Masukkan Nama registri untuk registri kontainer Anda. Nama registri harus unik dalam Azure dan harus berisi setidaknya 5 karakter.

  5. Pilih Lokasi dan SKU pilihan Anda lalu pilih Tinjau + buat.

  6. 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

  1. Navigasi ke portal Azure.

  2. Pilih Buat sumber daya dari panel navigasi kiri, lalu pilih Komputer virtual ->Buat.

  3. Pilih Langganan Anda lalu pilih Grup sumber daya yang Anda gunakan untuk membuat registri kontainer Anda.

  4. Beri nama komputer virtual Anda dan pilih Gambar.

  5. Masukkan Nama Pengguna dan Kata Sandi Anda, lalu pilih Tinjau + buat.

  6. Tinjau pengaturan Anda, lalu pilih Buat setelah selesai.

  7. Pilih Buka sumber daya saat penyebaran selesai.

Membuat kumpulan agen

  1. Dari proyek Azure DevOps Anda, pilih ikon ikon gigi gigi untuk menavigasi ke pengaturan Proyek Anda.

  2. Pilih Kumpulan agen, lalu pilih Tambahkan kumpulan.

  3. Pilih Baru, lalu pilih Dihost sendiri dari menu dropdown Jenis kumpulan.

  4. Beri nama kumpulan Anda, lalu centang Kotak centang Berikan izin akses ke semua alur .

  5. Pilih Buat setelah selesai.

  6. Sekarang pilih kumpulan yang baru saja Anda buat, lalu pilih Agen baru.

  7. 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.

    Cuplikan layar memperlihatkan cara menyiapkan agen.

Membuat token akses pribadi

  1. Dari proyek Azure DevOps Anda, pilih Pengaturan Pengguna, lalu pilih Token Akses Pribadi.

  2. Pilih Token Baru untuk membuat Token Akses Pribadi baru.

  3. Masukkan nama untuk PAT Anda, lalu pilih tanggal kedaluwarsa.

  4. Pilih Kustom yang ditentukan dalam Cakupan, lalu pilih Perlihatkan semua cakupan.

  5. Pilih Kumpulan Agen ->Baca & kelola, dan Grup Penyebaran ->Baca &kelola.

  6. Pilih Buat setelah selesai, dan simpan PAT Anda di lokasi yang aman.

Menyiapkan agen yang dihost sendiri

  1. Di portal Azure, sambungkan ke VM Anda.

  2. 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
    
  3. 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")
    
  4. Jalankan perintah berikut untuk mulai mengonfigurasi agen Anda.

    .\config.cmd
    
  5. Masukkan URL server Anda saat dimintai input. Contoh: https://dev.azure.com/fabrikamFiber

  6. Tekan Enter saat dimintai jenis autentikasi untuk memilih autentikasi PAT .

  7. Tempelkan token akses pribadi yang Anda buat sebelumnya lalu tekan enter.

  8. Masukkan nama kumpulan agen Anda, lalu masukkan nama agen Anda.

  9. Biarkan nilai default untuk folder kerja, lalu masukkan Y jika Anda ingin menjalankan agen Anda sebagai layanan.

    Cuplikan layar memperlihatkan cara menyiapkan agen di Azure VM.

  10. 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>
    
  11. Navigasikan ke jalur unduhan Anda, lalu jalankan perintah berikut untuk menginstal dan memulai Docker.

    Start-Process 'Docker%20Desktop%20Installer.exe' -Wait install
    
  12. Sekarang navigasikan kembali ke folder agen Anda, dan jalankan file cmd untuk menjalankan agen di Azure VM Anda.

    .\run.cmd
    
  13. Agen Anda harus dicantumkan sekarang di kumpulan Agen Anda ->Agen di portal Azure DevOps.

    Cuplikan layar memperlihatkan agen yang tersedia di tab agen.

Menyiapkan identitas terkelola

  1. Di portal Azure, navigasikan ke VM yang Anda buat sebelumnya.

  2. Pilih Identitas dari panel navigasi kiri, lalu aktifkan Identitas yang ditetapkan sistem.

  3. Pilih Simpan setelah selesai, lalu konfirmasikan pilihan Anda.

    Cuplikan layar memperlihatkan cara mengaktifkan identitas yang ditetapkan sistem.

  4. Pilih Penetapan peran Azure, pilih Tambahkan penetapan peran.

  5. Pilih Grup sumber daya dari menu dropdown Cakupan .

  6. Pilih Langganan dan grup Sumber Daya Anda, lalu pilih peran AcrPush.

  7. Ulangi langkah 5 & 6 untuk menambahkan peran AcrPull .

    Cuplikan layar memperlihatkan cara menyiapkan peran acrpull dan push.

Membuat koneksi layanan registri Docker

  1. Dari proyek Azure DevOps Anda, pilih ikon ikon gigi gigi untuk menavigasi ke pengaturan Proyek Anda.

  2. Pilih Koneksi layanan dari panel kiri.

  3. Pilih Koneksi layanan baru, lalu pilih Docker Registry lalu Berikutnya.

  4. Pilih Azure Container Registry, lalu pilih Identitas Layanan Terkelola sebagai Jenis Autentikasi Anda.

  5. Masukkan nama Langganan ID Langganan Anda, dan server masuk registri kontainer Azure Anda. Tempelkan ID Objek yang ditetapkan sistem VM yang Anda buat di langkah sebelumnya di bidang teks ID Penyewa.

  6. 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.

  7. Pilih Simpan saat Anda selesai.

    Cuplikan layar memperlihatkan cara menyiapkan MSI koneksi layanan registri docker.

Membangun dan menerbitkan ke Azure Container Registry

  1. Dari proyek Azure DevOps Anda, pilih Alur lalu pilih Buat Alur.

  2. Pilih layanan yang menghosting kode sumber Anda (Azure Repos, GitHub, dll.).

  3. Pilih repositori Anda, lalu pilih Alur pemula.

  4. 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)
    
  5. Setelah eksekusi alur selesai, Anda dapat memverifikasi gambar Anda di Azure. Navigasi ke Azure Container Registry Anda di portal Azure, lalu pilih Repositori.

    Cuplikan layar memperlihatkan gambar dalam portal Azure.

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