Bagikan melalui


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 jika Anda tidak memiliki proyek Anda sendiri.
- 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 jika Anda tidak memiliki proyek Anda sendiri.
- 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.

  1. Di proyek Azure DevOps Anda, pilih pengaturan Project>Koneksi layanan.

    Cuplikan layar pemilihan pengaturan Proyek.

  2. Pilih Koneksi Layanan Baru dan Docker Registry.

    Cuplikan layar pemilihan Docker Registry.

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

    Cuplikan layar dialog koneksi layanan Docker Hub.

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

  1. Di proyek Azure DevOps Anda, pilih Pipelines dan New pipeline.

  2. 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.
  3. Pilih repositori Anda.

  4. Pilih templat alur Starter untuk membuat konfigurasi alur dasar.

  5. 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'
    
    
  6. 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.
  7. Setelah selesai, pilih Simpan dan jalankan>Simpan dan jalankan.

  8. Pilih Pekerjaan untuk melihat log dan memverifikasi alur berhasil dijalankan.

  1. Buka proyek Azure DevOps Anda dan pilih Alur dari menu sebelah kiri.

  2. Pilih Alur baru.

  3. 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.
  4. Pilih template Docker - Membangun dan mendorong sebuah image ke Azure Container Registry.

  5. Pilih langganan Azure Anda dan Lanjutkan.

  6. 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)
    
    
  7. Pilih Simpan dan jalankan dan Simpan dan jalankan lagi.

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