Mulai cepat: Membuat gambar kontainer untuk menyebarkan aplikasi menggunakan Azure Pipelines

Azure DevOps

Mulai cepat ini menunjukkan cara membuat gambar kontainer untuk penyebaran aplikasi menggunakan Azure Pipelines. Untuk membangun gambar ini, yang Anda butuhkan adalah Dockerfile di repositori Anda. Anda dapat membangun kontainer Linux atau Windows, berdasarkan agen yang Anda gunakan di alur Anda.

Prasyarat

  • Akun Azure dengan langganan aktif. Buat akun secara gratis.
  • Akun GitHub. Jika Anda belum memilikinya, daftar gratis.
  • Agen Windows atau Linux alur Azure dengan Docker terinstal.

Membuat fork sampel repositori

Di browser Anda, buka repositori sampel berikut dan fork ke akun GitHub Anda.

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

Membangun citra Linux atau Windows

  1. Masuk ke organisasi Azure DevOps Anda, dan buka proyek Anda.

  2. Buka Alur, dan pilih Alur Baru atau Buat Alur jika membuat alur pertama dalam proyek.

  3. Pilih GitHub sebagai lokasi untuk kode sumber Anda.

  4. Pilih repositori Anda, lalu pilih Alur pemula.

    • 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.
  5. Ganti konten azure-pipelines.yml dengan kode berikut. Berdasarkan apakah Anda menyebarkan aplikasi Linux atau Windows, pastikan untuk masing-masing diatur vmImage ke atau ubuntu-latestwindows-latest.

     trigger:
     - main
    
     pool:
       vmImage: 'ubuntu-latest' 
    
     variables:
       imageName: 'pipelines-javascript-docker'
    
     steps:
     - task: Docker@2
       displayName: Build an image
       inputs:
         repository: $(imageName)
         command: build
         Dockerfile: app/Dockerfile
    
  6. Setelah selesai, pilih Simpan dan jalankan.

  7. Saat menambahkan file azure-pipelines.yml ke repositori, Anda akan diminta untuk menambahkan pesan penerapan. Masukkan pesan, lalu pilih Simpan dan jalankan.

Saat menggunakan agen yang dihost sendiri, pastikan Docker diinstal pada host agen, dan mesin/daemon Docker berjalan dengan hak istimewa yang ditingkatkan.

Untuk membangun gambar, Docker harus diinstal pada host agen dan mesin/daemon Docker harus berjalan dengan hak istimewa yang ditingkatkan. Gunakan langkah-langkah berikut untuk membuat alur Anda menggunakan editor alur YAML.

  1. Buka koleksi Anda dan buat proyek.
  2. Di proyek Anda, pilih Alur.
  3. Pilih Buat Saluran.
  4. Pilih GitHub Enterprise Server sebagai lokasi untuk kode sumber Anda.
  5. Jika Anda belum melakukannya, otorisasi Azure Pipelines untuk menyambungkan ke akun GitHub Enterprise Server Anda.
    1. Pilih Koneksi ke GitHub Enterprise Server.
    2. Masukkan detail akun Anda, lalu pilih Verifikasi dan simpan.
  6. Pilih repositori Anda. Jika Anda dialihkan ke GitHub untuk menginstal aplikasi Azure Pipelines, pilih Setujui dan instal.
  7. Untuk mengonfigurasi alur Anda, pilih templat gambar Build a Docker.
  8. Di editor alur YAML, ganti konten file YAML dengan kode berikut. Ganti nama kumpulan dengan nama kumpulan yang berisi agen yang dihost sendiri dengan kemampuan Docker.
# Docker
# Build a Docker image
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker

trigger:
- main

pool:
  name: default
  demands: docker

variables:
  imageName: 'pipelines-javascript-docker'

steps:
 - task: Docker@2
   displayName: Build an image
   inputs:
     repository: $(imageName)
     command: build
     Dockerfile: '$(Build.SourcesDirectory)/app/Dockerfile'

  1. Pilih Simpan dan jalankan.
  2. Pada halaman Simpan dan jalankan , pilih Simpan dan jalankan lagi.

Untuk informasi selengkapnya tentang membangun gambar Docker, lihat tugas Docker yang digunakan oleh aplikasi sampel ini. Anda juga dapat langsung memanggil perintah Docker menggunakan tugas baris perintah.

Gambar kontainer dibangun dan disimpan di agen. Anda dapat mendorong gambar ke Google Container Registry, Docker Hub, atau Azure Container Registry. Untuk informasi selengkapnya, lihat Mendorong gambar ke Docker Hub atau Google Container Registry atau Mendorong gambar ke Azure Container Registry.

Membersihkan sumber daya

Jika Anda tidak berencana untuk terus menggunakan aplikasi ini, hapus alur dan repositori kode Anda.

FAQ

Agen apa yang dapat saya gunakan untuk membangun gambar kontainer?

  • Anda dapat membangun gambar kontainer Linux menggunakan agen Ubuntu yang dihosting Microsoft atau agen yang dihosting sendiri berbasis platform Linux.

  • Anda dapat membangun gambar kontainer Windows menggunakan agen Windows yang dihosting Microsoft atau agen yang dihosting sendiri berbasis platform Windows. Semua agen berbasis platform Windows yang dihosting Microsoft dikirimkan dengan mesin Moby dan klien yang dibutuhkan untuk build Docker.

  • Saat ini Anda tidak dapat menggunakan agen macOS yang dihosting Microsoft untuk membangun gambar kontainer karena mesin Moby yang diperlukan untuk membangun gambar tidak diinstal sebelumnya pada agen ini.

Untuk informasi selengkapnya, lihat Opsi agen Windows dan Linux yang tersedia dengan agen yang dihosting Microsoft.

Gambar Docker yang telah di-cache apa yang tersedia di agen yang dihosting?

Untuk menghindari pengeluaran interval panjang menarik gambar Docker untuk setiap pekerjaan dari registri kontainer, beberapa gambar yang umum digunakan telah di-precach pada agen yang dihosting Microsoft. Untuk daftar gambar pra-cache yang tersedia, lihat Perangkat Lunak Yang Disertakan untuk gambar VM yang tersedia di repositori pembuatan gambar azure-pipelines.

Bagaimana cara mengatur variabel BuildKit untuk build Docker saya?

BuildKit memperkenalkan peningkatan build sekeliling performa, manajemen penyimpanan, fungsionalitas fitur, dan keamanan. BuildKit saat ini tidak didukung pada host Windows.

Untuk mengaktifkan build Docker menggunakan BuildKit, atur variabel DOCKER_BUILDKIT .

trigger:
- main
   
pool:
  vmImage: 'ubuntu-latest'
   

variables:
  imageName: 'pipelines-javascript-docker'
  DOCKER_BUILDKIT: 1
    
steps:
- task: Docker@2
  displayName: Build an image
  inputs:
    repository: $(imageName)
    command: build
    Dockerfile: app/Dockerfile

Bagaimana cara menggunakan agen yang dihosting sendiri?

Docker harus diinstal dan mesin/daemon yang berjalan pada host agen. Jika Docker tidak diinstal pada host agen, Anda dapat menambahkan tugas penginstal Docker ke alur Anda. Anda harus menambahkan Tugas Penginstal Docker sebelum Tugas Docker.

Bagaimana cara membuat build Docker berbasis skrip alih-alih menggunakan tugas Docker?

Anda dapat menggunakan build perintah atau perintah Docker lainnya.

docker build -f Dockerfile -t foobar.azurecr.io/hello:world .

Perintah ini membuat gambar yang setara dengan gambar yang dibangun dengan tugas Docker. Secara internal, tugas Docker memanggil biner Docker pada skrip dan menyatukan beberapa perintah lagi untuk memberikan beberapa manfaat lagi. Pelajari selengkapnya tentang tugas Docker.

Dapatkah saya menggunakan kembali penembolokan lapisan selama build di Azure Pipelines?

Jika Anda menggunakan agen yang dihosting Microsoft, setiap pekerjaan dikirim ke komputer virtual yang baru disediakan, berdasarkan gambar yang dihasilkan dari templat repositori generasi gambar azure-pipelines. Komputer virtual ini dibersihkan setelah pekerjaan selesai. Masa pakai sementara ini mencegah penggunaan kembali komputer virtual ini untuk pekerjaan berikutnya dan penggunaan kembali lapisan Docker yang di-cache. Sebagai solusinya, Anda dapat menyiapkan build multi-tahap yang menghasilkan dua gambar dan mendorongnya ke registri gambar pada tahap awal. Anda kemudian dapat memberi tahu Docker untuk menggunakan gambar-gambar ini sebagai sumber cache dengan --cache-from argumen .

Jika Anda menggunakan agen yang dihost sendiri, Anda dapat menyimpan lapisan Docker tanpa solusi karena masalah masa pakai sementara tidak berlaku untuk agen ini.

Bagaimana cara membangun gambar kontainer Linux untuk arsitektur selain x64?

Ketika Anda menggunakan agen Linux yang dihosting Microsoft, Anda membuat gambar kontainer Linux untuk arsitektur x64. Untuk membuat gambar untuk arsitektur lain, seperti prosesor x86 atau ARM, Anda dapat menggunakan emulator mesin seperti QEMU.

Langkah-langkah berikut menunjukkan cara membuat gambar kontainer prosesor ARM dengan menggunakan QEMU:

  1. Tulis Dockerfile Anda dengan gambar dasar yang cocok dengan arsitektur target:

    FROM arm64v8/alpine:latest
    
  2. Jalankan skrip berikut dalam pekerjaan Anda sebelum Anda membuat gambar:

    # register QEMU binary - this can be done by running the following image
    docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    # build your image
    

Untuk informasi selengkapnya, lihat qemu-user-static di GitHub.

Bagaimana cara menjalankan pengujian dan menerbitkan hasil pengujian untuk aplikasi dalam kontainer?

Untuk opsi yang berbeda dalam menguji aplikasi dalam kontainer dan menerbitkan hasil pengujian yang dihasilkan, lihat Menerbitkan tugas Hasil Pengujian.

Langkah berikutnya

Setelah Anda membuat gambar kontainer, dorong gambar ke Azure Container Registry, Docker Hub, atau registri Google Container. Untuk mempelajari cara mendorong gambar ke registri kontainer, lanjutkan ke salah satu artikel berikut: