如何为新的 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?
我之前将多容器 docker 与 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"
}
]
}
在 Amazon Linux 2 Docker platform 中,docker-compose.yml 替换 Dockerrun.json 用于配置您的应用程序服务。
如果您在源包中为 Amazon Linux 2 Docker 平台提供正确配置的 docker-compose.yml
并拉取图像,则不需要 Dockerrun.json
文件来自 Elasticbeanstalk 应用程序可访问的 public 个注册表或 ECR 存储库。
如果您从私有容器注册表中提取镜像,则需要从中获取 额外的 Dockerrun.json v3
到 configure credentials for pulling images。
只需创建 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:
像这样
我之前将多容器 docker 与 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"
}
]
}
在 Amazon Linux 2 Docker platform 中,docker-compose.yml 替换 Dockerrun.json 用于配置您的应用程序服务。
如果您在源包中为 Amazon Linux 2 Docker 平台提供正确配置的 docker-compose.yml
并拉取图像,则不需要 Dockerrun.json
文件来自 Elasticbeanstalk 应用程序可访问的 public 个注册表或 ECR 存储库。
如果您从私有容器注册表中提取镜像,则需要从中获取 额外的 Dockerrun.json v3
到 configure credentials for pulling images。
只需创建 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:
像这样