我有以下docker compose文件:
version: '2'
services:
app:
build: .
command: >
bash -cex "
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
/virtualenv/bin/flask run -h 0.0.0.0 -p 5050
"
env_file: env
links:
- postgres
ports:
- 8080:8080
如您所见,我正在使用 env_file 选项从文件 env 加载我的环境变量。
现在,我正在尝试将此容器部署到Elastic Beanstalk。
到目前为止,这是我的文件Dockerrun.aws.json:
{
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [
{
"name": "app",
"image": "myorg/myimage",
"essential": true,
"memory": 256,
"command": [
"/bin/bash",
"export LC_ALL=C.UTF-8",
"export LANG=C.UTF-8",
"/virtualenv/bin/flask run -h 0.0.0.0 -p 5050"
],
"portMappings": [
{
"hostPort": 8080,
"containerPort": 8080
}
],
"links": [
"postgres",
]
}
在AWS Elastic Beanstalk的documentation中,只需提及环境选项即可传递环境变量数组,但是我找不到如何传递文件而不是变量数组的方法。
有人知道如何将这个 docker-compose 文件正确地转换为 Dockerrun.aws.json 文件吗?
问候。
最佳答案
$ pip install container-transform
$ cat docker-compose.yml | container-transform -v
并将ECS格式打印到STDOUT。
关于amazon-web-services - Docker在Multicontainer Elastic Beanstalk中撰写env_file,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42254666/