Menggunakan Azure Pipelines untuk membangun dan mendorong gambar kontainer ke registri
Artikel
Layanan Azure DevOps | Azure DevOps Server 2022 | Azure DevOps Server 2020
Artikel ini memandu Anda melalui penyiapan dan konfigurasi untuk menggunakan Azure Pipelines untuk membangun dan mendorong gambar Docker ke Azure Container Registry, Docker Hub, dan Google Artifact Registry. Selain itu, ini merinci penggunaan System.AccessToken untuk autentikasi aman dalam alur Anda.
Artikel ini memandu Anda melalui penyiapan dan konfigurasi untuk menggunakan Azure Pipelines untuk membangun dan mendorong gambar Docker ke Docker Hub dan Google Artifact Registry. Selain itu, ini merinci penggunaan System.AccessToken untuk autentikasi aman dalam alur Anda.
Anda mempelajari cara membuat alur YAML untuk membangun dan mendorong gambar Docker ke registri kontainer. Tugas Docker@2 digunakan untuk membangun dan mendorong gambar ke registri kontainer.
Prasyarat
Proyek Azure DevOps.
Registri kontainer (Docker Hub, Google Artifact Registry, atau Azure Container Registry).
Repositori GitHub dengan Dockerfile. Jika Anda tidak memilikinya, Anda dapat menggunakan repositori sampel Di browser Anda, buka repositori sampel lalu fork ke akun GitHub Anda.
Docker. Jika 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.
Proyek Azure DevOps.
Registri kontainer (Docker Hub atau Google Artifact Registry).
Repositori GitHub dengan Dockerfile. Jika Anda tidak memilikinya, Anda dapat menggunakan repositori sampel Di browser Anda, buka repositori sampel lalu fork ke akun GitHub Anda.
Docker. Jika 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.
Membuat koneksi layanan 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. Buka halaman Koneksi layanan di proyek Azure DevOps Anda untuk membuat koneksi layanan baru dan pilih jenis koneksi Docker Registry.
Ada berbagai proses untuk membuat koneksi layanan untuk Docker Hub dan Google Artefak Registri.
Pilih opsi Docker Hub di bawah Koneksi layanan registri Docker dan berikan nama pengguna dan kata sandi Anda untuk membuat koneksi layanan Docker.
Pilih opsi Azure Container Registry di bawah koneksi layanan registri Docker dan berikan informasi yang diperlukan oleh metode autentikasi yang Anda pilih.
Mendorong gambar Docker ke Azure Container Registry tidak didukung di Azure DevOps Server.
Untuk membuat koneksi layanan Docker yang terkait dengan Google Artifact Registry:
Buka proyek Anda di Konsol Google Cloud Platform (GCP) lalu buka Cloud Shell
Untuk menghemat waktu mengetik ID proyek dan opsi zona Mesin Komputasi, atur nilai konfigurasi default dengan menjalankan perintah berikut:
gcloud config set project [PROJECT_NAME]
gcloud config set compute/zone [ZONE]
Ganti [PROJECT_NAME] dengan nama proyek GCP Anda dan ganti [ZONE] dengan nama zona yang akan Anda gunakan untuk membuat sumber daya. Jika Anda tidak yakin tentang zona mana yang akan dipilih, gunakan us-central1-a. Contohnya:
gcloud config set project azure-pipelines-test-project-12345
gcloud config set compute/zone us-central1-a
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.
Langkah-langkah berikut menguraikan cara membuat alur YAML yang menggunakan tugas Docker@2 untuk membangun dan mendorong gambar.
Navigasi ke proyek Azure DevOps Anda dan pilih Alur dari menu sebelah kiri.
Pilih Alur baru untuk membuat alur baru.
Pilih GitHub atau GitHub Enterprise Server sebagai lokasi untuk kode sumber Anda.
Jika Anda belum melakukannya, otorisasi Azure Pipelines untuk menyambungkan ke akun GitHub Enterprise Server Anda.
Pilih Sambungkan ke GitHub Enterprise Server.
Masukkan detail akun Anda, lalu pilih Verifikasi dan simpan.
Pilih repositori Anda.
Jika Anda dialihkan ke GitHub
Pilih templat alur Starter untuk membuat konfigurasi alur dasar.
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. Jika Anda menggunakan agen yang dihost sendiri, atur vmImage ke nama kumpulan yang berisi agen yang dihost sendiri dengan kemampuan Docker. Anda dapat menambahkan demands: docker properti untuk memastikan agen dengan Docker terinstal dipilih.
Ganti <docker connection> dengan nama koneksi layanan Docker yang Anda buat sebelumnya.
Ganti <target repository name> dengan nama repositori di registri kontainer tempat Anda ingin mendorong gambar. Contohnya,<your-docker-hub-username>/<repository-name>.
Saat menyimpan 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.
Buka koleksi Anda dan buat proyek.
Di proyek Anda, pilih Alur.
Pilih Buat Saluran.
Pilih GitHub Enterprise Server sebagai lokasi untuk kode sumber Anda.
Jika Anda belum melakukannya, otorisasi Azure Pipelines untuk menyambungkan ke akun GitHub Enterprise Server Anda.
Pilih Sambungkan ke GitHub Enterprise Server.
Masukkan detail akun Anda, lalu pilih Verifikasi dan simpan.
Pilih repositori Anda.
Jika Anda dialihkan ke GitHub untuk menginstal aplikasi Azure Pipelines, pilih Setujui dan instal.
Untuk mengonfigurasi alur Anda, pilih templat gambar Build a Docker.
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.
Berdasarkan apakah Anda menyebarkan aplikasi Linux atau Windows, pastikan untuk masing-masing diatur vmImage ke atau ubuntu-latestwindows-latest.
Ganti <target repository name> dengan nama repositori di registri kontainer tempat Anda ingin mendorong gambar. Contohnya,<your-docker-hub-username>/<repository-name>.
Ganti <docker connection> dengan nama koneksi layanan Docker yang Anda buat sebelumnya.
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.
Langkah-langkah berikut menguraikan cara membuat alur YAML yang menggunakan tugas Docker@2 untuk membangun dan mendorong gambar.
Navigasi ke proyek Azure DevOps Anda dan pilih Alur dari menu sebelah kiri.
Pilih Alur baru untuk membuat alur baru.
Pilih GitHub atau GitHub Enterprise Server sebagai lokasi untuk kode sumber Anda.
Jika Anda belum melakukannya, otorisasi Azure Pipelines untuk menyambungkan ke akun GitHub Enterprise Server Anda.
Pilih Sambungkan ke GitHub Enterprise Server.
Masukkan detail akun Anda, lalu pilih Verifikasi dan simpan.
Pilih repositori Anda.
Pilih templat alur Starter untuk membuat konfigurasi alur dasar.
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. Jika Anda menggunakan agen yang dihost sendiri, atur vmImage ke nama kumpulan yang berisi agen yang dihost sendiri dengan kemampuan Docker. Anda dapat menambahkan demands: docker properti untuk memastikan agen dengan Docker terinstal dipilih.
Ganti <docker connection> dengan nama koneksi layanan Docker yang Anda buat sebelumnya.
Ganti <target repository name> dengan nama repositori di registri kontainer tempat Anda ingin mendorong gambar. Contohnya,myregistry.azurecr.io/myimage.
Saat menyimpan 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.
Mendorong docker yang dicitrakan ke Azure Container Registry tidak didukung di Azure DevOps Server.
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.
Langkah-langkah berikut menguraikan cara membuat alur YAML yang menggunakan tugas Docker@2 untuk membangun dan mendorong gambar.
Navigasi ke proyek Azure DevOps Anda dan pilih Alur dari menu sebelah kiri.
Pilih Alur baru untuk membuat alur baru.
Pilih GitHub atau GitHub Enterprise Server sebagai lokasi untuk kode sumber Anda.
Jika Anda belum melakukannya, otorisasi Azure Pipelines untuk menyambungkan ke akun GitHub Enterprise Server Anda.
Pilih Sambungkan ke GitHub Enterprise Server.
Masukkan detail akun Anda, lalu pilih Verifikasi dan simpan.
Pilih repositori Anda.
Pilih templat alur Starter untuk membuat konfigurasi alur dasar.
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. Jika Anda menggunakan agen yang dihost sendiri, atur vmImage ke nama kumpulan yang berisi agen yang dihost sendiri dengan kemampuan Docker. Anda dapat menambahkan demands: docker properti untuk memastikan agen dengan Docker terinstal dipilih.
Ganti <docker connection> dengan nama koneksi layanan Docker yang Anda buat sebelumnya.
Ganti <target repository name> dengan nama repositori di registri kontainer tempat Anda ingin mendorong gambar. Contohnya,<your-project-id>/<your-image-name>.
Saat menyimpan 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.
Buka koleksi Anda dan buat proyek.
Di proyek Anda, pilih Alur.
Pilih Buat Saluran.
Pilih GitHub Enterprise Server sebagai lokasi untuk kode sumber Anda.
Jika Anda belum melakukannya, otorisasi Azure Pipelines untuk menyambungkan ke akun GitHub Enterprise Server Anda.
Pilih Sambungkan ke GitHub Enterprise Server.
Masukkan detail akun Anda, lalu pilih Verifikasi dan simpan.
Pilih repositori Anda.
Untuk mengonfigurasi alur Anda, pilih templat gambar Build a Docker.
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.
Berdasarkan apakah Anda menyebarkan aplikasi Linux atau Windows, pastikan untuk masing-masing diatur vmImage ke atau ubuntu-latestwindows-latest.
Ganti <target repository name> dengan nama repositori di registri kontainer tempat Anda ingin mendorong gambar. Contohnya,<your-project-id>/<your-image-name>.
Ganti <docker connection> dengan nama koneksi layanan Docker yang Anda buat sebelumnya.
Pada halaman Simpan dan jalankan , pilih Simpan dan jalankan lagi.
Anda dapat menonton eksekusi alur dan melihat log untuk melihat gambar Docker yang sedang dibangun dan didorong ke registri kontainer.
Menggunakan System.AccessToken untuk Autentikasi dalam Tugas Docker@2
Anda dapat mengautentikasi dengan registri kontainer menggunakan System.AccessToken yang disediakan oleh Azure DevOps. Token ini memungkinkan akses aman ke sumber daya dalam alur Anda tanpa mengekspos info masuk sensitif.
Contoh alur YAML berikut, tugas Docker@2 digunakan untuk masuk ke registri kontainer dan mendorong gambar Docker. System.AccessToken diatur sebagai variabel lingkungan untuk mengautentikasi perintah Docker.
Ganti <docker connection> dengan nama koneksi layanan registri Docker Anda.
Ganti <your repository> dengan nama repositori Docker Anda.