Я создаю разделенный безголовый веб-сайт, используя Wordpress для CMS и внешний интерфейс Next.js. Я использую мультиконтейнерное решение AWS Elastic Beanstalk, но у меня возникают проблемы, когда я не могу понять, как мне следует структурировать этот проект и как я могу использовать другие веб-сервисы Amazon.
Мой Dockerrun.aws.json
в настоящее время имеет 3 контейнера: приложение next.js из моего собственного хранилища Dockerhub, официальный образ Wordpress, который использует ENV vars для подключения к базе данных RDS, и Nginx.
Проблема сейчас в том, что мне нужно полностью заменить папку wp-content
- как мне это сделать и какую структуру или архитектуру мне выбрать? Как мне это автоматизировать?
Если в итоге у меня будет несколько пользовательских файлов Docker, как мне автоматизировать весь процесс? Я знаю, что для AWS EB требуются предварительно созданные изображения. Заранее спасибо.
Это мой текущий Dockerrun.aws.json
:
{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "nextjs-app",
"host": {
"sourcePath": "/var/app/current/nextjs-app"
}
},
{
"name": "wordpress",
"host": {
"sourcePath": "/var/app/current/wp"
}
},
{
"name": "nginx-proxy-conf",
"host": {
"sourcePath": "/var/app/current/proxy/conf.d"
}
}
],
"containerDefinitions": [
{
"name": "nextjs-app",
"image": "myrepo/nextjs-app",
"essential": true,
"memory": 128,
"portMappings": [
{
"hostPort": 3000,
"containerPort": 3000
}
],
"mountPoints": [
{
"sourceVolume": "nextjs-app",
"containerPath": "/var/www/nextjs-app",
"readOnly": true
}
]
},
{
"name": "wordpress",
"image": "wordpress",
"essential": true,
"memory": 128,
"environment": [
{
"name": "WORDPRESS_DB_HOST",
"value": "${WORDPRESS_DB_HOST}"
},
{
"name": "WORDPRESS_DB_USER",
"value": "${WORDPRESS_DB_USER}"
},
{
"name": "WORDPRESS_DB_PASSWORD",
"value": "${WORDPRESS_DB_PASSWORD}"
},
{
"name": "WORDPRESS_DB_NAME",
"value": "${WORDPRESS_DB_NAME}"
}
]
},
{
"name": "nginx-proxy",
"image": "nginx",
"essential": true,
"memory": 128,
"portMappings": [
{
"hostPort": 80,
"containerPort": 80
}
],
"links": ["nextjs-app", "wordpress"],
"mountPoints": [
{
"sourceVolume": "nextjs-app",
"containerPath": "/var/www/nextjs-app",
"readOnly": true
},
{
"sourceVolume": "wordpress",
"containerPath": "/var/www/wordpress",
"readOnly": true
},
{
"sourceVolume": "awseb-logs-nginx-proxy",
"containerPath": "/var/log/nginx"
},
{
"sourceVolume": "nginx-proxy-conf",
"containerPath": "/etc/nginx/conf.d",
"readOnly": true
}
]
}
]
}
На самом деле он не работает, я портирую приложение Next.js прямо в файл Dockerrun и порт Wordpress в nginx получает 502плохой шлюз