Я не настолько опытен в докере - я не чувствую вашего ответа, насколько он адекватен моей конфигурации docker-compose. Я обновил свой вопрос.
У меня есть проекты сdocker-compose
конфигурация с той же конфигурацией (PHP, MySQL, nginx). Когда я запускаю один проект сdocker-compose up
нет проблем, но мне нужно переключаться между ними по несколько раз в день для разработки.
Проблемы:
общие настройки для одного и того же порта для nginxподелиться конфигурацией для БД по умолчанию и соединения (имя и пользователи)домены для каждого проектау меня естьDocker for Mac
- крайСейчасЩас просто бегиup
а такжеdown -v
каждый раз. В основном, проект находится на той же версии PHP (должна быть) и MySQL.
Одна из идей - создать конфигурацию в главной папке.workspace
, docker-compose
с некоторым loadbalancer, который будет по некоторым правилам, сгенерирует домен для данного проекта с томом в качестве основной папки и с одним сервером MySql и несколькими БД - но это необработанная идея.
Какое решение работает в данной ситуации?
предложить какую-либо структуру или конфигурацию докера для решения независимых конфигураций?ОбновитьМои файлы для создания докеровверсия: '2.1'
Настройка одного сервера для devservices:
app:
image: ${PHP_IMAGE}
volumes:
- ${COMPOSE_DIR}/../../:/var/www:cached
- ${COMPOSER_HOME}:/root/.composer:cached
depends_on:
- db
environment:
- SYMFONY_ENV=${SYMFONY_ENV-prod}
- SYMFONY_DEBUG
- SYMFONY_HTTP_CACHE
- SYMFONY_HTTP_CACHE_CLASS
- SYMFONY_TRUSTED_PROXIES
- DATABASE_USER
- DATABASE_PASSWORD
- DATABASE_NAME
- DATABASE_HOST=db
web:
image: ${NGINX_IMAGE}
volumes_from:
- app:ro
ports:
- "8080:80"
environment:
- SYMFONY_ENV=${SYMFONY_ENV-prod}
- MAX_BODY_SIZE=20
- FASTCGI_PASS=app:9000
- TIMEOUT=190
- DOCKER0NET
command: /bin/bash -c "cd /var/www && cp -a doc/nginx/ez_params.d /etc/nginx && bin/vhost.sh --template-file=doc/nginx/vhost.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
db:
image: ${MYSQL_IMAGE}
volumes:
- ${COMPOSE_DIR}/entrypoint/mysql:/docker-entrypoint-initdb.d/:ro
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=1
- MYSQL_USER=$DATABASE_USER
- MYSQL_PASSWORD=$DATABASE_PASSWORD
- MYSQL_DATABASE=$DATABASE_NAME
- TERM=dumb
Учитывая это, как я уже сказал, я бы хотел запускать проекты с другой версией PHP. У каждого одинаковыеnginx
конфигурации, то нужно как-то иметь возможность запускать их, легко и одновременно.
Поймите ответ @Vladimir Kovpak, но работа таким образом вручную создаст много работы. Каждый проект имеет собственный конфиг docker-compose.
Что было бы идеальноСценарий 1Перейти к проекту, запустить команду для правильной сборки с помощью docker-composeМог бы сделать работу разработчикаможет иметь доступную страницу через несколько динамических доменовзапустить команду, чтобы закрыть проектСценарий 2Перейти к проекту, запустить команду для правильной сборки с помощью docker-composeПерейти в другой проект, запустить команду для правильной сборки с помощью docker-composeПерейти в другой проект, запустить команду для правильной сборки с помощью docker-composeМог бы сделать работу разработчикаможет иметь доступную страницу через несколько динамических доменовзапустить команду, чтобы закрыть проектМожет работать со всеми проектами одновременно. Первым шагом является предложение - любая инициализация и закрытие будут в порядке, а не болезненными - должны быть быстрыми и легкими.