Pilih alur kerja build dan penyebaran kontainer

Azure Developer CLI (azd) dapat membangun, menerbitkan, dan menyebarkan gambar kontainer di beberapa layanan hosting Azure. Alur kerja kontainer menggabungkan target hosting dengan lokasi build dan pendekatan penerbitan. Kombinasi terbaik tergantung pada aplikasi Anda, alat yang tersedia tim Anda, dan cara Anda mempromosikan gambar antar lingkungan.

Gunakan artikel ini untuk mencocokkan pilihan tersebut dengan kebutuhan Anda. Ini membandingkan keputusan berikut:

  • Layanan Azure mana yang menghosting kontainer Anda.
  • Apakah azd membangun gambar secara lokal, membangunnya dari jarak jauh di Azure Container Registry (ACR), atau menggunakan gambar yang ada.
  • Apakah azd menerbitkan dan menyebarkan gambar bersama-sama atau sebagai langkah terpisah.

Artikel ini membandingkan layanan hosting tujuan umum ini:

Mulailah dengan membandingkan target hosting dan opsi pembuatan image. Setelah Anda memahami pilihan tersebut, gunakan untuk mengidentifikasi alur kerja kandidat di bagian Membandingkan alur kerja penyebaran kontainer .

Membandingkan target hosting kontainer

Properti host dalam azure.yaml mengidentifikasi layanan Azure yang azd menyebarkan kontainer Anda. Pilih host secara terpisah dari lokasi build image.

Nilai host target hosting Azure Alur kerja kontainer Considerations
containerapp pekerjaan Azure Container Apps dan Aplikasi Kontainer Buat dari proyek dan Dockerfile, atau sebarkan gambar bawaan. Mendukung variabel lingkungan tingkat layanan dan strategi penyebaran khusus Container Apps. Gunakan nilai host yang sama untuk job Container Apps.
appservice Aplikasi Web Linux untuk Kontainer di Azure App Service Bangun dari proyek dan Dockerfile, atau terapkan image yang sudah dibangun sebelumnya. Infrastruktur Anda harus menyediakan situs siap kontainer Linux dan mengonfigurasi akses identitas terkelola ke ACR. azd deploy hanya memperbarui referensi gambar.
aks Azure Kubernetes Service Buat gambar dan sebarkan manifes Kubernetes, bagan Helm, atau konfigurasi Kustomisasi. Menyediakan kontrol paling besar, tetapi mengharuskan Anda untuk mengelola kluster dan konfigurasi Kubernetes. Menggunakan Helm atau Kustomize dengan azd memerlukan pengaktifan bendera fitur alfa.

Host ai.endpoint dan azure.ai.agent juga mendukung konfigurasi Docker untuk skenario Microsoft Foundry khusus. Untuk beban kerja tersebut, lihat Menyebarkan ke titik akhir online Microsoft Foundry dan ekstensi agen Microsoft Foundry.

Bandingkan opsi pembuatan image

Definisi layanan menentukan apakah azd membangun gambar atau dimulai dengan gambar yang ada.

Opsi kompilasi Konfigurasi yang diperlukan Tempat build dijalankan Mesin kontainer lokal Paling cocok untuk
Build lokal project dan, secara opsional, docker Lingkungan pengembangan atau runner CI Anda Required Iterasi pengembangan yang cepat dan membangun lingkungan yang sudah menyediakan Docker atau Podman.
Build ACR jarak jauh project dan docker.remoteBuild: true Azure Container Registry Tidak diperlukan kecuali azd beralih ke opsi cadangan setelah kegagalan build jarak jauh Proses build cloud dan lingkungan yang konsisten tanpa engine kontainer lokal. Alur kerja build jarak jauh yang didokumenasikan menargetkan Azure Container Apps.
Gambar yang ada dikelola oleh azd image Tidak ada build sumber Mungkin diperlukan untuk operasi siklus hidup gambar Image yang sudah ada secara lokal atau di registri dan yang azd dapat ambil, beri tag, dan dorong.
Penerusan gambar jarak jauh image dan docker.imagePassthrough: true Tidak ada kompilasi Tidak diperlukan Gambar jarak jauh berkualifikasi lengkap yang harus digunakan oleh sumber daya host apa adanya.

Ingatlah perbedaan konseptual ini saat Anda membaca artikel konfigurasi per opsi:

  • Gambar bawaan menggunakan image properti alih-alih project, dan azd masih dapat menarik, menandai, dan mendorongnya.
  • Build jarak jauh ACR akan beralih ke build Docker atau Podman lokal saat build jarak jauh gagal dan engine kontainer yang didukung tersedia.
  • Penerusan image memerlukan referensi image jarak jauh yang memenuhi syarat lengkap dan menyertakan registri, tidak dapat digabungkan dengan remoteBuild, dan tidak mendukung opsi azd publish --from-package atau azd publish --to karena azd tidak mengelola image.

Untuk konfigurasi lengkap setiap opsi, lihat Dukungan build jarak jauh dengan Azure Container Registry, Menggunakan registri kontainer pihak ketiga, penyebaran kontainer App Service dengan Azure Developer CLI, dan docker skema.

Membandingkan alur kerja penyebaran kontainer

Setelah Anda membandingkan target hosting di Membandingkan target hosting kontainer dan opsi build di Membandingkan opsi build gambar, gunakan tabel berikut untuk mengidentifikasi alur kerja yang paling mungkin untuk kebutuhan Anda.

Jika Anda perlu Mulai dengan Mengapa
Menyebarkan aplikasi dalam kontainer ke platform tanpa server Azure Container Apps dengan build lokal Alur kerja ini membangun dan menyebarkan proyek berbasis Dockerfile dalam satu alur kerja pengembangan.
Membangun tanpa menginstal Docker atau Podman secara lokal Azure Container Apps dengan build jarak jauh ACR ACR membangun gambar dari proyek Anda dan Dockerfile di Azure.
Menyebarkan gambar yang dihasilkan sistem build lain Azure Container Apps atau App Service dengan gambar bawaan Properti image mengidentifikasi gambar yang ada alih-alih kode sumber untuk dibuat.
Menggunakan kembali citra remote tanpa mengunduh, memberi tag, atau mengunggahnya Azure Container Apps dengan passthrough gambar azd meneruskan referensi gambar yang sepenuhnya memenuhi syarat langsung ke sumber daya hosting.
Menghosting aplikasi web tradisional sebagai kontainer Linux Aplikasi Web untuk Kontainer di Azure App Service App Service menyediakan platform hosting web terintegrasi sementara infrastruktur Anda mengontrol konfigurasi situs siap kontainer.
Mengontrol manifes Kubernetes dan konfigurasi kluster Azure Kubernetes Service (AKS) azd dapat membangun dan menerbitkan gambar, lalu menyebarkan manifes Kubernetes, bagan Helm, atau konfigurasi Kustomisasi.
Buat sekali dan promosikan image yang sama ke berbagai lingkungan azd publish, diikuti oleh azd deploy --from-package Penerbitan dan penyebaran terpisah, sehingga setiap lingkungan menerima gambar yang sama.

Setiap baris menggabungkan opsi host dari Bandingkan target host kontainer dan opsi build dari Bandingkan opsi build image sebagai titik awal. Konfigurasikan pilihan Anda di azure.yaml, dan biarkan file Bicep atau Terraform Anda menyediakan sumber daya hosting dan registri yang sesuai.

Definisi layanan minimal menetapkan host, sumber build, dan Dockerfile:

services:
  api:
    project: ./src/api
    language: docker
    host: containerapp
    docker:
      path: ./Dockerfile

Untuk menyesuaikan definisi ini ke host lain, ubah host nilai dan ikuti kontrak konfigurasi per host:

Membandingkan perintah penerbitan dan penyebaran

Setelah Anda memilih opsi host dan build, pilih apakah akan menggabungkan atau memisahkan penerbitan dan penyebaran gambar.

Command Aksi gambar Tindakan sumber daya Azure Gunakan ketika diperlukan
azd up Membangun dan mendorong Sediakan dan terapkan Anda ingin membuat atau memperbarui lingkungan lengkap dan menyebarkan aplikasi dalam satu alur kerja.
azd deploy Membangun dan mendorong Deploy Infrastruktur sudah ada dan Anda ingin menyebarkan perubahan aplikasi.
azd publish Membangun dan mendorong Tidak Anda ingin membuat artefak registri tanpa menyebarkannya. azd publish mendukung layanan Container Apps dan AKS.
azd publish --from-package <image> Unggah image lokal yang sudah ada Tidak Proses lain membangun gambar, dan Anda ingin azd menerbitkannya.
azd deploy --from-package <image> Tidak Deploy Anda ingin menyebarkan gambar tertentu tanpa membangunnya kembali.

Misalnya, terbitkan gambar versi dan sebarkan gambar yang sama ke lingkungan lain:

azd publish api --to myregistry.azurecr.io/my-api:v1.0.0
azd env select production
azd deploy api --from-package myregistry.azurecr.io/my-api:v1.0.0

Alur kerja ini mencegah perbedaan yang dapat terjadi saat Anda membangun ulang gambar untuk setiap lingkungan. Untuk alur kerja promosi yang lengkap, lihat alur kerja penerbitan Azure Developer CLI.