все на php7.3, mysql 5.7, nginx
Раз у всех проектов одна среда, достаточно запустить по одному инстансу php-fpm, mysql, nginx и пользоваться ими из всех разрабатываемых проектов.
«Проект», получается, это папка с файлами, отдельная бд или таблицы на общем сервере MySQL, и прописанный в конфигах nginx
location /project-42 { root /projects/project-42; ... }
### или целый блок
server {
listen 80;
server_name project42.dev;
...
}
Пожалуй, лучше работать через
docker-compose: весь конфиг в одном
файле, общая сеть, сервисы друг друга видят, но при этом не светят лишними портами наружу.
Поднимите сначала один из проектов. Потом разберитесь, как добавить файлы остальных через
volumes:
nginx:
volumes:
- "/freelance/projects/Project-0/:/var/www/project0"
- "/freelance/projects/Project-42/:/var/www/project42"
# ...
php-fpm:
volumes:
# то же самое сюда
2) Как проектам дать не localhost:8080, а нормальный урл типа project.dev?
В конфиге сервиса nginx в
docker-compose.yml
пропишите вместо
8080:80
—
80:80
, а в локальном
файле hosts допишите
127.0.0.1 project.dev project42.dev