Docker совет №4: Структура проекта с несколькими Dockerfile и docker-compose
Oct 19, 2017 08:36 · 151 words · 1 minute read
Когда дело доходит до организации крупных проектов с несколькими Dockerfile и их взаимодействием через docker-compose
, делать это можно по-разному. В данной статье предлагаю рассмотреть, как это делаю я — давайте разберемся!
Маленький проект (одно приложение с одним Dockerfile и одним docker-compose.yml
) никогда не вызывает вопросов, его структура выглядит так:
my_super_app/
- appcode/
- Dockerfile
- docker-compose.yml
При этом содержимое файла docker-compose.yml
в общем случае выглядит так:
version: '3'
services:
myapp:
build: '.'
Но когда в проекте существует несколько отдельных сервисов со своими Dockerfil‘ами (например, nginx
+ php-fpm
и redis
), то все равно для удобства управления нам нужен один и только один docker-compose.yml
. Структура проекта во втором случае будет похожа на эту:
my_super_app/
- nginx/
- Dockerfile
- php-fpm/
- Dockerfile
- redis/
- Dockerfile
- memcached/
- Dockerfile
- docker-compose.yml
А сам файл docker-compose.yml
превратится в:
version: '3'
services:
nginx:
build: './nginx'
php-fpm:
build: './php-fpm'
redis:
build: './redis'
memcached:
build: './memcached'