Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Membangun dan mendorong gambar Docker ke Amazon ECR dengan CodePipeline (tipe V2)
Tutorial ini membantu Anda membuat tindakan build CodePipeline yang berjalan dan mendorong gambar Docker Anda ke Amazon ECR setelah perubahan pada kode sumber Anda. Tutorial ini juga menunjukkan cara menambahkan tindakan penyebaran Amazon ECS yang menerapkan gambar yang didorong.
penting
Sebagai bagian dari pembuatan pipeline di konsol, bucket artefak S3 akan digunakan oleh CodePipeline untuk artefak. (Ini berbeda dari bucket yang digunakan untuk aksi sumber S3.) Jika bucket artefak S3 berada di akun yang berbeda dari akun untuk pipeline Anda, pastikan bucket artefak S3 dimiliki oleh Akun AWS itu aman dan dapat diandalkan.
catatan
Tutorial ini adalah untuk tindakan ECRBuildAndPublish build untuk CodePipeline pipeline dengan repositori GitHub sumber dan tindakan standar Amazon ECS untuk penerapan ke cluster Amazon ECS. Untuk tutorial yang menggunakan pipeline dengan repositori gambar ECR sebagai sumber untuk tindakan CodeDeploy blue/green penyebaran Amazon ECS CodePipeline, lihatTutorial: Buat pipeline dengan sumber dan ECS-to-CodeDeploy penerapan Amazon ECR.
penting
Tindakan ini menggunakan CodePipeline CodeBuild komputasi terkelola untuk menjalankan perintah di lingkungan build. Menjalankan tindakan perintah akan dikenakan biaya terpisah. AWS CodeBuild
Prasyarat
Ada beberapa sumber daya yang harus Anda miliki sebelum Anda dapat menggunakan tutorial ini untuk membuat pipeline CD Anda. Berikut adalah hal-hal yang Anda butuhkan untuk memulai:
catatan
Semua sumber daya ini harus dibuat dalam Wilayah yang sama AWS .
-
Repositori kontrol sumber (tutorial ini menggunakan GitHub) di mana Anda akan menambahkan yang berikut untuk tutorial ini:
-
Pada Langkah 1, Anda akan menambahkan contoh Dockerfile ke repositori sumber Anda sebagai artefak input untuk tindakan ECRBuildAndPublish build di. CodePipeline
-
Pada Langkah 2, Anda akan menambahkan contoh file imagedefinitions.json ke repositori sumber Anda sebagai persyaratan untuk tindakan penerapan standar Amazon ECS di. CodePipeline
-
-
Repositori gambar Amazon ECR yang berisi gambar yang telah Anda buat dari Dockerfile Anda. Untuk informasi selengkapnya, lihat Membuat Repositori dan Mendorong Gambar di Panduan Pengguna Amazon Elastic Container Registry.
-
Cluster dan layanan Amazon ECS yang dibuat di Wilayah yang sama dengan repositori gambar. Untuk informasi selengkapnya, lihat Membuat Cluster dan Membuat Layanan di Panduan Pengembang Amazon Elastic Container Service.
Setelah Anda memenuhi prasyarat ini, Anda dapat melanjutkan dengan tutorial dan membuat pipeline CD Anda.
Langkah 1: Tambahkan Dockerfile ke repositori sumber Anda
Tutorial ini menggunakan ECRBuildAndPublish tindakan untuk membangun image Docker Anda dan mendorong gambar ke Amazon ECR. Tindakan komputasi ter CodePipeline kelola digunakan CodeBuild untuk menjalankan perintah untuk login ECR dan push gambar. Anda tidak perlu menambahkan buildspec.yml file ke repositori kode sumber Anda untuk memberi tahu CodeBuild cara melakukannya. Anda hanya menyediakan Dockerfile di repositori Anda sebagai berikut untuk contoh ini.
Tempelkan teks sampel ini untuk membuat Dockerfile file Anda. Contoh Dockerfile ini sama dengan sampel yang digunakan dalam instruksi gambar ECR dalam prasyarat.
FROM public.ecr.aws/amazonlinux/amazonlinux:latest # Install dependencies RUN yum update -y && \ yum install -y httpd # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo 'mkdir -p /var/run/httpd' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/httpd' >> /root/run_apache.sh && \ echo '/usr/sbin/httpd -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
Untuk menambahkan Dockerfile berkas ke repositori sumber Anda
-
Buka editor teks dan kemudian salin dan tempel Dockerfile di atas ke file baru.
-
Komit dan dorong
Dockerfilefile Anda ke repositori sumber Anda.-
Tambahkan file.
git add . -
Lakukan perubahan.
git commit -m "Adding Dockerfile." -
Dorong komit.
git push
Pastikan untuk menempatkan file di tingkat root repositori Anda.
/ Dockerfile -
Langkah 2: Tambahkan file imagedefinitions.json ke repositori sumber Anda
Tutorial ini menggunakan tindakan penerapan standar Amazon ECS CodePipeline untuk menyebarkan wadah Anda ke cluster Amazon ECS Anda. Tindakan penerapan standar Amazon ECS memerlukan file imagedefinitions.json yang berisi nama gambar dan URI Anda. Untuk informasi selengkapnya tentang file imagedefinitions.json, lihat. file imagedefinitions.json untuk tindakan penerapan standar Amazon ECS
Tempelkan teks sampel ini untuk membuat imagedefinitions.json file Anda. Gunakan nama di Dockerfile Anda, sepertihello-world, dan gunakan URI dari repositori Amazon ECR tempat gambar disimpan.
[ { "name": "hello-world", "imageUri": "ACCOUNT-ID.dkr.ecr.us-east-1.amazonaws.com/actions/image-repo" } ]
Untuk menambahkan definisi image.json berkas ke repositori sumber Anda
-
Buka editor teks dan kemudian salin dan tempel contoh di atas ke file baru.
-
Komit dan dorong
imagedefinitions.jsonfile Anda ke repositori sumber Anda.-
Tambahkan file.
git add . -
Lakukan perubahan.
git commit -m "Adding imagedefinitions.json." -
Dorong komit.
git push
Pastikan untuk menempatkan file di tingkat root repositori Anda.
/ imagedefinitions.json -
Langkah 3: Membuat pipeline Anda
Gunakan CodePipeline wizard untuk membuat tahapan pipeline Anda dan menghubungkan repositori sumber Anda.
Untuk membuat alur Anda
Buka CodePipeline konsol di https://console.aws.amazon.com/codepipeline/
. -
Pada halaman Selamat Datang, halaman Mem ulai, atau halaman Pipelines, pilih Buat pipeline.
-
Pada Langkah 1: Pilih halaman opsi pembuatan, di bawah Opsi pembuatan, pilih opsi Build custom pipeline. Pilih Berikutnya.
-
Di Langkah 2: Pilih pengaturan pipa, di Nama Pipeline, masukkan
MyPipeline. -
CodePipeline menyediakan pipa tipe V1 dan V2, yang berbeda dalam karakteristik dan harga. Jenis V2 adalah satu-satunya jenis yang dapat Anda pilih di konsol. Untuk informasi selengkapnya, lihat Jenis jalur. Untuk informasi tentang penetapan harga untuk CodePipeline, lihat Harga
. -
Di Peran layanan, pilih Peran layanan baru untuk memungkinkan CodePipeline untuk membuat peran layanan di IAM.
-
Biarkan pengaturan di bawah Peng aturan lanj utan pada defaultnya, lalu pilih Ber ikutnya.
-
Pada Langkah 3: Tambahkan halaman tahap sumber, tambahkan tahap sumber:
-
Di penyedia Sumber, pilih GitHub (melalui GitHub Aplikasi).
-
Di bawah Koneksi, pilih koneksi yang ada atau buat yang baru. Untuk membuat atau mengelola koneksi untuk tindakan GitHub sumber Anda, lihatGitHub koneksi.
-
Di Nama Repositori, pilih nama GitHub repositori Anda.
-
Di cabang Def ault, pilih cabang yang ingin Anda tentukan saat pipeline dimulai secara manual atau dengan peristiwa sumber yang bukan tag Git. Jika sumber perubahan bukan pemicu atau jika eksekusi pipeline dimulai secara manual, maka perubahan yang digunakan akan menjadi komit HEAD dari cabang default.
Pilih Berikutnya.
-
-
Pada Langkah 4: Tambahkan halaman tahap build, pilih Penyedia build lainnya, lalu pilih ECRBuildAndPublish.
-
Untuk nama repositori ECR, pilih repositori gambar Anda.
-
Pilih Berikutnya.
-
-
Pada Langkah 5: Tambahkan tahap pengujian, pilih Lewati tahap pengujian, lalu terima pesan peringatan dengan memilih Le wati lagi.
Pilih Berikutnya.
-
Pada halaman Langkah 6: Tambahkan tahap penerapan, pilih Le wati tahap penerapan. Anda akan menambahkan tindakan ECS pada langkah berikut.
-
Pada halaman Langkah 7: Tinjau, tinjau konfigurasi pipeline Anda dan pilih Buat pipeline untuk membuat pipeline.
-
Edit pipeline Anda untuk menambahkan tindakan penyebaran Amazon ECS ke pipeline Anda:
-
Di kanan atas, pilih Edit.
-
Di bagian bawah diagram, pilih + Tambah tahap. Di Nama Pang gung, masukkan nama, seperti
Deploy. -
Pilih + Tambahkan grup tindakan.
-
Di Nama tindakan, masukkan nama.
-
Di penyedia Action, pilih Amazon ECS. Izinkan Wilayah ke default ke Wilayah alur.
-
Di Artefak mas ukan, pilih artefak input dari tahap sumber, seperti
SourceArtifact. -
Untuk Nama Cluster, pilih cluster Amazon ECS tempat layanan Anda berjalan.
-
Untuk Nama layanan, pilih layanan yang akan diperbarui.
-
Pilih Simpan.
-
Pada panggung yang sedang Anda edit, pilih Sel esai. Di AWS CodePipeline panel, pilih S impan, lalu pilih Simpan pada pesan peringatan.
-
Untuk mengirimkan perubahan dan memulai pembuatan pipeline, pilih R ilis perubahan, lalu pilih R ilis.
-
-
Setelah pipa berjalan, lihat struktur dan status pipa.
-
Setelah pipeline berjalan dengan sukses, pilih Lihat detail untuk melihat log pada tindakan untuk melihat keluaran tindakan komputasi terkelola.
-
Memecahkan masalah tindakan yang gagal. Misalnya, tindakan penerapan ECS dapat gagal jika file imagedefinitions.json tidak ada di repositori sumber. Berikut ini adalah contoh pesan kesalahan yang ditampilkan ketika file imagedefinitions.json hilang.
Langkah 4: Uji Pipeline Anda
Pipeline Anda harus memiliki segalanya untuk menjalankan penerapan AWS berkelanjutan asli ujung ke ujung. Sekarang, uji fungsinya dengan mendorong perubahan kode ke repositori sumber Anda.
Untuk menguji pipeline Anda
-
Buat perubahan kode ke repositori sumber yang dikonfigurasi, komit, dan dorong perubahan.
Buka CodePipeline konsol di https://console.aws.amazon.com/codepipeline/
. -
Pilih pipeline Anda dari daftar.
-
Perhatikan kemajuan pipa melalui tahapannya. Pipeline Anda harus selesai dan tindakan Anda mendorong image Docker ke ECR yang dibuat dari perubahan kode Anda.