Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi file DockerRun.aws.json v2
Dockerrun.aws.json v2
adalah file konfigurasi Elastic Beanstalk yang menjelaskan cara menerapkan satu set wadah Docker yang dihosting di ECS cluster di lingkungan Elastic Beanstalk. Platform Elastic Beanstalk ECS menciptakan definisi tugas, yang mencakup definisi wadah. ECS Definisi ini dijelaskan dalam file Dockerrun.aws.json
konfigurasi.
Definisi kontainer dalam Dockerrun.aws.json
file menjelaskan kontainer yang akan diterapkan ke setiap EC2 instans Amazon di ECS cluster. Dalam hal ini EC2 instance Amazon juga disebut sebagai instance container host, karena instance ini meng-host container Docker. File konfigurasi juga menjelaskan volume data yang akan dibuat pada instance wadah host agar kontainer Docker dipasang. Untuk informasi lebih lanjut dan diagram komponen dalam lingkungan Docker ECS terkelola di Elastic Beanstalk, ECSikhtisar platform Docker terkelola lihat sebelumnya di bagian ini.
File Dockerrun.aws.json
dapat digunakan sendiri atau di-zip dengan kode sumber tambahan dalam satu arsip. Kode sumber yang diarsipkan dengan a Dockerrun.aws.json
diterapkan ke instance EC2 penampung Amazon dan dapat diakses di direktori. /var/app/current/
Topik
Dockerrun.aws.json
v2
Dockerrun.aws.json
File ini mencakup bagian-bagian berikut:
- AWSEBDockerrunVersion
-
Menentukan nomor versi sebagai nilai
2
untuk lingkungan Docker ECS terkelola. - volume
-
Membuat volume dari folder di instans EC2 penampung Amazon, atau dari bundel sumber Anda (digunakan ke
/var/app/current
). Pasang volume ini ke jalur dalam wadah Docker Anda menggunakanmountPoints
dicontainerDefinitions
bagian. - containerDefinitions
-
Array definisi kontainer.
- otentikasi (opsional)
-
Lokasi di Amazon S3 dari
.dockercfg
file yang berisi data otentikasi untuk repositori pribadi.
Bagian containerDefinitionsdan volume Dockerrun.aws.json
menggunakan pemformatan yang sama dengan bagian yang sesuai dari file definisi ECS tugas Amazon. Untuk informasi selengkapnya tentang format definisi tugas dan daftar lengkap parameter definisi tugas, lihat definisi ECS tugas Amazon di Panduan Pengembang Layanan Kontainer Elastis Amazon.
Format volume
Parameter volume membuat volume dari salah satu folder dalam instance EC2 penampung Amazon, atau dari bundel sumber Anda (digunakan ke/var/app/current
).
Volume ditentukan dalam format berikut:
"volumes": [
{
"name": "volumename
",
"host": {
"sourcePath": "/path/on/host/instance
"
}
}
],
Pasang volume ini ke jalur dalam kontainer Docker Anda menggunakan mountPoints
definisi kontainer.
Elastic Beanstalk mengkonfigurasi volume tambahan untuk log, satu untuk setiap kontainer. Ini harus dipasang oleh kontainer Docker Anda untuk menulis log ke contoh host.
Untuk detail selengkapnya, lihat mountPoints
bidang di bagian Format definisi kontainer berikut.
Format definisi kontainer
Contoh berikut menunjukkan subset parameter yang biasa digunakan di containerDefinitionsbagian ini. Parameter opsional juga tersedia.
Platform Beanstalk membuat definisi ECS tugas, yang mencakup definisi wadah. ECS Beanstalk mendukung sub-set parameter untuk definisi wadah. ECS Untuk informasi selengkapnya, lihat Definisi kontainer di Panduan Pengembang Layanan Kontainer Elastis Amazon.
File Dockerrun.aws.json
berisi satu baris atau object yang lain dari definisi kontainer dengan bidang berikut:
- nama
-
Nama kontainer. Lihat Parameter Definisi Kontainer Standar untuk informasi tentang panjang maksimum dan karakter yang diizinkan.
- gambar
-
Nama gambar Docker dalam repositori Docker online tempat Anda membuat container Docker. Perhatikan konvensi ini:
-
Gambar di repositori resmi di Docker Hub menggunakan satu nama (misalnya,
ubuntu
ataumongo
). -
Gambar di repositori lain di Docker Hub memenuhi syarat dengan nama organisasi (misalnya,
amazon/amazon-ecs-agent
. -
Gambar di repositori online lainnya memenuhi syarat lebih lanjut dengan nama domain (misalnya,
quay.io/assemblyline/ubuntu
).
-
- Lingkungan
-
Sebuah susunan variabel lingkungan untuk melewati container
Sebagai contoh, entri berikut mendefinisikan variabel lingkungan dengan nama
Container
dan nilaiPHP
:"environment": [ { "name": "Container", "value": "PHP" } ],
- penting
-
Benar jika tugas harus berhenti jika kontainer gagal. Kontainer yang tidak penting dapat selesai atau mogok tanpa memengaruhi container lainnya pada contoh.
- memori
-
Jumlah memori pada contoh kontainer untuk cadangan untuk kontainer. Tentukan bilangan bulat bukan nol untuk salah satu atau kedua parameter
memory
ataumemoryReservation
dalam definisi kontainer. - memoryReservation
-
Batas lunak (di MiB) memori untuk cadangan untuk kontainer. Tentukan bilangan bulat bukan nol untuk salah satu atau kedua parameter
memory
ataumemoryReservation
dalam definisi kontainer. - mountPoints
-
Volume dari instance EC2 penampung Amazon untuk dipasang, dan lokasi pada sistem file kontainer Docker untuk memasangnya. Saat Anda memasang volume yang berisi konten aplikasi, kontainer Anda dapat membaca data yang Anda unggah di bundel sumber Anda. Ketika Anda memasang log volume untuk menulis log data, Elastic Beanstalk dapat mengumpulkan data log dari volume ini.
Elastic Beanstalk membuat volume log pada contoh kontainer, satu untuk setiap kontainer Docker, di
/var/log/containers/
. Volume ini diberi namacontainername
awseb-logs-
dan harus dipasang ke lokasi dalam struktur file kontainer di mana log ditulis.containername
Misalnya, titik pemasangan berikut memetakan lokasi log nginx dalam kontainer ke volume yang dihasilkan Elastic Beanstalk untuk kontainer
nginx-proxy
.{ "sourceVolume": "awseb-logs-nginx-proxy", "containerPath": "/var/log/nginx" }
- portMappings
-
Port jaringan peta pada kontainer untuk port pada host.
- Tautan
-
Daftar kontainer untuk ditautkan. kontainer yang ditautkan dapat saling menemukan dan berkomunikasi dengan aman.
- volumesFrom
-
Pasang semua volume dari kontainer yang berbeda. Misalnya, untuk memasang volume dari kontainer bernama
web
:"volumesFrom": [ { "sourceContainer": "web" } ],
Format otentikasi — menggunakan gambar dari repositori pribadi
authentication
Bagian ini berisi data otentikasi untuk repositori pribadi. Entri ini opsional.
menambahkan informasi tentang bucket Amazon S3 yang berisi berkas otentikasi di parameter authentication
dari file Dockerrun.aws.json
. Pastikan bahwa parameter authentication
berisi bucket Amazon S3 yang valid dan kunci. bucket Amazon S3 harus di-hosting di wilayah yang sama dengan lingkungan yang menggunakannya. Elastic Beanstalk tidak akan mengunduh file dari Amazon S3 bucket yang dihosting di wilayah lain.
Menggunakan format berikut:
"authentication": {
"bucket": "amzn-s3-demo-bucket
",
"key": "mydockercfg
"
},
Untuk informasi tentang menghasilkan dan mengunggah file otentikasi, lihat Menggunakan gambar dari repositori pribadi di Elastic Beanstalk.
Contoh DockerRun.aws.json v2
Potongan berikut adalah contoh yang menggambarkan sintaks file Dockerrun.aws.json
untuk sebuah contoh dengan dua kontainer.
{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "php-app",
"host": {
"sourcePath": "/var/app/current/php-app"
}
},
{
"name": "nginx-proxy-conf",
"host": {
"sourcePath": "/var/app/current/proxy/conf.d"
}
}
],
"containerDefinitions": [
{
"name": "php-app",
"image": "php:fpm",
"environment": [
{
"name": "Container",
"value": "PHP"
}
],
"essential": true,
"memory": 128,
"mountPoints": [
{
"sourceVolume": "php-app",
"containerPath": "/var/www/html",
"readOnly": true
}
]
},
{
"name": "nginx-proxy",
"image": "nginx",
"essential": true,
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80
}
],
"links": [
"php-app"
],
"mountPoints": [
{
"sourceVolume": "php-app",
"containerPath": "/var/www/html",
"readOnly": true
},
{
"sourceVolume": "nginx-proxy-conf",
"containerPath": "/etc/nginx/conf.d",
"readOnly": true
},
{
"sourceVolume": "awseb-logs-nginx-proxy",
"containerPath": "/var/log/nginx"
}
]
}
]
}