Я не настолько опытен в докере - я не чувствую вашего ответа, насколько он адекватен моей конфигурации 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'

Настройка одного сервера для dev
services:
  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Мог бы сделать работу разработчикаможет иметь доступную страницу через несколько динамических доменовзапустить команду, чтобы закрыть проект

Может работать со всеми проектами одновременно. Первым шагом является предложение - любая инициализация и закрытие будут в порядке, а не болезненными - должны быть быстрыми и легкими.

Ответы на вопрос(0)

Ваш ответ на вопрос