gpt4 book ai didi

django - 如何为 Django 将 docker-compose.yml 翻译成 Dockerrun.aws.json

转载 作者:IT老高 更新时间:2023-10-28 12:41:55 26 4
gpt4 key购买 nike

我正在按照 https://docs.docker.com/compose/django/ 的说明进行操作让一个基本的 dockerized django 应用程序运行。我可以毫无问题地在本地运行它,但我无法使用 Elastic Beanstalk 将它部署到 AWS。看完here ,我想我需要将 docker-compose.yml 翻译成 Dockerrun.aws.json 才能工作。

原来的docker-compose.yml是

version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db

这是我目前翻译的内容

{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "db"
},
{
"name": "web"
}
],
"containerDefinitions": [
{
"name": "db",
"image": "postgres",
"essential": true,
"memory": 256,
"mountPoints": [
{
"sourceVolume": "db"
"containerPath": "/var/app/current/db"
}
]
},
{
"name": "web",
"image": "web",
"essential": true,
"memory": 256,
"mountPoints": [
{
"sourceVolume": "web"
"containerPath": "/var/app/current/web"
}
],
"portMappings": [
{
"hostPort": 8000,
"containerPort": 8000
}
],
"links": [
"db"
],
"command": "python manage.py runserver 0.0.0.0:8000"
}
]
}

但它不起作用。我做错了什么?

最佳答案

我一直在努力了解 Dockerrun 格式的来龙去脉。查看 Container Transform :“转换 docker-compose、ECS 和 Marathon 配置”......这是一个救生员。以下是它为您的示例输出的内容:

{
"containerDefinitions": [
{
"essential": true,
"image": "postgres",
"name": "db"
},
{
"command": [
"python",
"manage.py",
"runserver",
"0.0.0.0:8000"
],
"essential": true,
"mountPoints": [
{
"containerPath": "/code",
"sourceVolume": "_"
}
],
"name": "web",
"portMappings": [
{
"containerPort": 8000,
"hostPort": 8000
}
]
}
],
"family": "",
"volumes": [
{
"host": {
"sourcePath": "."
},
"name": "_"
}
]
}
Container web is missing required parameter "image".
Container web is missing required parameter "memory".
Container db is missing required parameter "memory".

也就是说,在这种新格式中,您必须告诉它为每个容器分配多少内存。此外,您需要提供图像 - 没有构建选项。正如评论中提到的,您想要构建并推送到 DockerHub 或 ECR,然后给它那个位置:例如 Dockerhub 上的 [org name]/[repo]:latest,或者 ECR 的 URL .但是 container-transform 会为您完成 mountPointsvolumes - 这太棒了。

关于django - 如何为 Django 将 docker-compose.yml 翻译成 Dockerrun.aws.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39460512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com