Đây dường như là cách duy nhất để đặt các ENV với các giá trị động trong cây đậu. Tôi đã nghĩ ra một cách giải quyết phù hợp với thiết lập multi-docker của mình:
1) Thêm cái này vào Dockerfile của bạn trước khi xây dựng + tải lên kho lưu trữ ECS của bạn:
CMD eval `cat /tmp/envs/env_file$`; <base image CMD goes here>;
2) Trong tệp Dockerrun.aws.json của bạn, hãy tạo một ổ đĩa:
{
"name": "env-file",
"host": {
"sourcePath": "/var/app/current/envs"
}
}
3) Gắn khối lượng vào thùng chứa của bạn
{
"sourceVolume": "env-file",
"containerPath": "/tmp/envs",
"readOnly": true
}
4) Trong tệp .ebextensions / options.config của bạn, hãy thêm một khối container_commands như sau:
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) triển khai eb và ENVS của bạn sẽ có sẵn trong bộ chứa docker của bạn
Bạn có thể thêm nhiều ENV hơn bằng cách thêm nhiều container_command như:
02_create_env_file_2:
command: { "Fn::Join" : [ "", [ 'echo "', "export ENVIRONMENT_NAME_2=" , { "Ref", "RESOURCE2" }, ';" >> envs/env_file;' \] \] }
Hi vọng điêu nay co ich!