如何为新的 Docker Amazon Linux 2 平台将 Dockerrun.json v2 转换为 Dockerrun.json v3?
Posted
技术标签:
【中文标题】如何为新的 Docker Amazon Linux 2 平台将 Dockerrun.json v2 转换为 Dockerrun.json v3?【英文标题】:How to convert Dockerrun.json v2 to Dockerrun.json v3 for new Docker Amazon Linux 2 Platform? 【发布时间】:2021-09-22 19:48:01 【问题描述】:我之前使用 Dockerrun.json v2
的多容器泊坞窗。但现在它已被弃用。 AWS 推荐 Docker Amazon Linux 2 Platform
。但它需要Dockerrun.json v3
。那么如何从 v2 迁移到 v3 呢?或者我们可以直接使用docker-compose.yml
,或者需要使用Dockerrun.json v1。 [有多个容器]。
"AWSEBDockerrunVersion": 2,
"containerDefinitions": [
"environment": [
"name": "POSTGRES_USER",
"value": "admin"
,
"name": "POSTGRES_PASSWORD",
"value": "postgres"
,
"name": "POSTGRES_DB",
"value": "somedb"
],
"essential": true,
"image": "postgres:12-alpine",
"memory": 300,
"mountPoints": [
"containerPath": "/var/lib/postgresql/data/",
"sourceVolume": "postgres_data"
],
"name": "db",
"portMappings": [
"containerPort": 5432,
"hostPort": 5432
]
,
"essential": true,
"links": [
"db"
],
"name": "web",
"image": "****.dkr.ecr.ap-south-1.amazonaws.com/someimage:latest",
"memory": 300,
"portMappings": [
"containerPort": 80,
"hostPort": 80
]
],
"volumes": [
"host":
"sourcePath": "postgres_data"
,
"name": "postgres_data"
]
【问题讨论】:
【参考方案1】:只需创建 docker-compose.yml,不要尝试在 docker-compose.yml 中构建镜像。将所有图像推送到 ECR 中,然后在 docker compose 中进行引用。
version: '3'
services:
web:
image: ****.dkr.ecr.ap-south-1.amazonaws.com/abc:latest
ports:
- "80:80"
links:
- db
db:
image: postgres:12-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=***db
ports:
- "5432:5432"
volumes:
postgres_data:
这样
【讨论】:
【参考方案2】:在Amazon Linux 2 Docker platform 中,docker-compose.yml 替换 Dockerrun.json 来配置您的应用程序服务。
如果您在源包中提供为 Amazon Linux 2 Docker 平台正确配置的 docker-compose.yml
并从 Elasticbeanstalk 应用程序可访问的公共注册表或 ECR 存储库中提取图像,则不需要 Dockerrun.json
文件。
如果您要从私有容器注册表中提取图像,则需要附加 Dockerrun.json v3
到 configure credentials for pulling images。
【讨论】:
以上是关于如何为新的 Docker Amazon Linux 2 平台将 Dockerrun.json v2 转换为 Dockerrun.json v3?的主要内容,如果未能解决你的问题,请参考以下文章
如何为在 64 位 Amazon Linux 2 上运行的 Elastic Beanstalk Python 3.7 项目安装节点包?
如何为在 docker 容器内运行的 corda 节点运行迁移脚本?