Dies scheint die einzige Möglichkeit zu sein, ENVs mit dynamischen Werten in Beanstalk festzulegen. Ich habe eine Problemumgehung gefunden, die für mein Multi-Docker-Setup funktioniert:
1) Fügen Sie dies Ihrer Docker-Datei hinzu, bevor Sie es erstellen + in Ihr ECS-Repository hochladen:
CMD eval `cat /tmp/envs/env_file$`; <base image CMD goes here>;
2) Erstellen Sie in Ihrer Datei Dockerrun.aws.json ein Volume:
{
"name": "env-file",
"host": {
"sourcePath": "/var/app/current/envs"
}
}
3) Montieren Sie das Volumen an Ihrem Behälter
{
"sourceVolume": "env-file",
"containerPath": "/tmp/envs",
"readOnly": true
}
4) Fügen Sie in Ihrer Datei .ebextensions / options.config einen container_commands-Block wie folgt hinzu:
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 deploy und Ihr ENVS sollten in Ihrem Docker-Container verfügbar sein
Sie können weitere ENVs hinzufügen, indem Sie weitere container_commands hinzufügen, z.
02_create_env_file_2:
command: { "Fn::Join" : [ "", [ 'echo "', "export ENVIRONMENT_NAME_2=" , { "Ref", "RESOURCE2" }, ';" >> envs/env_file;' \] \] }
Hoffe das hilft!