นี่เป็นวิธีเดียวในการตั้งค่า ENV ด้วยค่าไดนามิกในต้นถั่ว ฉันคิดวิธีแก้ปัญหาที่ใช้ได้กับการตั้งค่า multi-docker ของฉัน:
1) เพิ่มสิ่งนี้ลงใน Dockerfile ของคุณก่อนสร้าง + อัปโหลดไปยังที่เก็บ ECS ของคุณ:
CMD eval `cat /tmp/envs/env_file$`; <base image CMD goes here>;
2) ในไฟล์ Dockerrun.aws.json ของคุณสร้างไดรฟ์ข้อมูล:
{
"name": "env-file",
"host": {
"sourcePath": "/var/app/current/envs"
}
}
3) ติดตั้งปริมาตรลงในภาชนะของคุณ
{
"sourceVolume": "env-file",
"containerPath": "/tmp/envs",
"readOnly": true
}
4) ในไฟล์. ebextensions / options.config ของคุณให้เพิ่มบล็อก container_commands ดังนี้:
container_commands:
01_create_mount:
command: "mkdir -p envs/"
02_create_env_file:
command: { "Fn::Join" : [ "", [ 'echo "', "export ENVIRONMENT_NAME=" , { "Ref", "RESOURCE" }, ';" > envs/env_file;' ] ] }
5) ปรับใช้ eb และ ENVS ของคุณควรมีอยู่ในคอนเทนเนอร์นักเทียบท่าของคุณ
คุณสามารถเพิ่ม ENV ได้โดยการเพิ่ม container_commands เช่น:
02_create_env_file_2:
command: { "Fn::Join" : [ "", [ 'echo "', "export ENVIRONMENT_NAME_2=" , { "Ref", "RESOURCE2" }, ';" >> envs/env_file;' \] \] }
หวังว่านี่จะช่วยได้!