Docker 在多容器 Elastic Beanstalk 中编写 env_file
Posted
技术标签:
【中文标题】Docker 在多容器 Elastic Beanstalk 中编写 env_file【英文标题】:Docker Compose env_file in Multicontainer Elastic Beanstalk 【发布时间】:2017-07-04 10:13:24 【问题描述】:我有以下 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 中仅提及 environment 选项以传递一组 env 变量,但我找不到如何传递文件而不是变量数组。
有人知道如何将这个 docker-compose 文件正确翻译成 Dockerrun.aws.json 文件吗?
问候。
【问题讨论】:
【参考方案1】:试试container-transform。
$ pip install container-transform
$ cat docker-compose.yml | container-transform -v
它会将 ECS 格式打印到 STDOUT。
【讨论】:
以上是关于Docker 在多容器 Elastic Beanstalk 中编写 env_file的主要内容,如果未能解决你的问题,请参考以下文章
使用 Dockerrun.aws.json 和 Elastic Beanstalk 命名 Docker 容器
如何在 Elastic Beanstalk 应用程序中的 Docker 容器之间共享卷?
AWS Elastic Beanstalk - 多容器 Docker
Elastic Beanstalk 多容器 Docker 环境变量