Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat dan dorong gambar Docker ke Amazon ECR menggunakan GitHub Actions dan Terraform
Ruchika Modi, Amazon Web Services
Ringkasan
Pola ini menjelaskan bagaimana Anda dapat membuat GitHub alur kerja yang dapat digunakan kembali untuk membangun Dockerfile Anda dan mendorong gambar yang dihasilkan ke Amazon Elastic Container Registry (Amazon ECR). Pola mengotomatiskan proses pembuatan Dockerfiles Anda dengan menggunakan Terraform dan Actions. GitHub Ini meminimalkan kemungkinan kesalahan manusia dan secara substansional mengurangi waktu penyebaran.
Tindakan GitHub push ke cabang utama GitHub repositori Anda memulai penyebaran sumber daya. Alur kerja membuat repositori Amazon ECR unik berdasarkan kombinasi nama GitHub organisasi dan repositori. Kemudian mendorong gambar Dockerfile ke repositori Amazon ECR.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif.
GitHub Akun aktif.
Sebuah GitHub repositori
. Terraform versi 1 atau yang lebih baru diinstal dan
dikonfigurasi. Bucket Amazon Simple Storage Service (Amazon S3) untuk backend Terraform.
Tabel Amazon DynamoDB
untuk penguncian dan konsistensi status Terraform. Tabel harus memiliki kunci partisi bernama LockID
dengan tipeString
. Jika ini tidak dikonfigurasi, penguncian status akan dinonaktifkan.Peran AWS Identity and Access Management (IAM) yang memiliki izin untuk menyiapkan backend Amazon S3 untuk Terraform. Untuk petunjuk konfigurasi, lihat dokumentasi Terraform
.
Keterbatasan
Kode yang dapat digunakan kembali ini telah diuji hanya dengan GitHub Tindakan.
Arsitektur
Tumpukan teknologi target
Repositori Amazon ECR
GitHub Tindakan
Terraform
Arsitektur target

Diagram ini menggambarkan hal sebagai berikut:
1. Seorang pengguna menambahkan template Dockerfile dan Terraform ke repositori. GitHub
2. Penambahan ini memulai alur kerja GitHub Actions.
3. Alur kerja memeriksa apakah ada repositori Amazon ECR. Jika tidak, itu membuat repositori berdasarkan nama GitHub organisasi dan repositori.
4. Alur kerja membangun Dockerfile dan mendorong gambar ke repositori Amazon ECR.
Alat
Layanan Amazon
Amazon Elastic Container Registry (Amazon ECR) adalah layanan registri kontainer terkelola yang aman, terukur, dan andal.
Alat-alat lainnya
GitHub Tindakan
diintegrasikan ke dalam GitHub platform untuk membantu Anda membuat, berbagi, dan menjalankan alur kerja dalam GitHub repositori Anda. Anda dapat menggunakan GitHub Tindakan untuk mengotomatiskan tugas seperti membangun, menguji, dan menerapkan kode Anda. Terraform
adalah alat infrastruktur sebagai kode (IAc) HashiCorp yang membantu Anda membuat dan mengelola infrastruktur cloud dan lokal.
Repositori kode
Kode untuk pola ini tersedia di repositori Alur Kerja Tindakan ECR GitHub Docker
Saat Anda membuat GitHub Actions, file alur kerja Docker disimpan di
/.github/workflows/
folder repositori ini. Alur kerja untuk solusi ini ada di file workflow.yaml. e2e-test
Folder menyediakan contoh Dockerfile untuk referensi dan pengujian.
Praktik terbaik
Untuk praktik terbaik dalam menulis Dockerfiles, lihat dokumentasi Docker
. Gunakan titik akhir VPC untuk Amazon ECR. Titik akhir VPC didukung oleh AWS PrivateLink, teknologi yang memungkinkan Anda mengakses Amazon APIs ECR secara pribadi melalui alamat IP pribadi. Untuk tugas Amazon ECS yang menggunakan tipe peluncuran Fargate, titik akhir VPC memungkinkan tugas untuk menarik gambar pribadi dari Amazon ECR tanpa menetapkan alamat IP publik ke tugas tersebut.
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Konfigurasikan OpenID Connect. | Buat penyedia OpenID Connect (OIDC). Anda akan menggunakan penyedia dalam kebijakan kepercayaan untuk peran IAM yang digunakan dalam tindakan ini. Untuk petunjuk, lihat Mengonfigurasi OpenID Connect di Amazon | Administrator AWS, AWS DevOps, AWS Umum |
Kloning GitHub repositori. | Kloning repositori Alur Kerja Tindakan ECR GitHub Docker
| DevOps insinyur |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Sesuaikan acara yang memulai alur kerja Docker. | Alur kerja untuk solusi ini ada di workflow.yaml | DevOps insinyur |
Sesuaikan alur kerja. | File workflow.yaml
| DevOps insinyur |
Terapkan templat Terraform. | Alur kerja secara otomatis menyebarkan templat Terraform yang membuat repositori ECR Amazon, berdasarkan peristiwa yang Anda konfigurasikan. GitHub Template ini tersedia sebagai | AWS DevOps, DevOps insinyur |
Pemecahan Masalah
Isu | Solusi |
---|---|
Masalah atau kesalahan saat Anda mengonfigurasi Amazon S3 dan DynamoDB sebagai backend jarak jauh Terraform. | Ikuti petunjuk dalam dokumentasi Terraform |
Tidak dapat menjalankan atau memulai alur kerja dengan | Alur kerja yang dikonfigurasi untuk diterapkan dari |