Ejecutar múltiples proyectos Dockerize al mismo tiempo usando PHP, MySQL, nginx

Problema

Tengo proyectos condocker-compose configuración con la misma configuración (PHP, MySQL, nginx). Cuando ejecuto un proyecto condocker-compose up no hay ningún problema, pero necesito cambiar entre ellos a pocas veces al día para el desarrollo.

Los problemas:

las configuraciones compartidas para el mismo puerto para nginxcompartir configuración para DB y conexión predeterminadas (nombre y usuarios)dominios para cada proyectoyo tengoDocker for Mac - bordePor ahora

En este momento simplemente correup ydown -v cada vez. Principalmente, los proyectos están en la misma versión de PHP (debería estar) y MySQL.

IdeasBalanceador de carga

Una de las ideas es crear la configuración en la carpeta principalworkspace, docker-compose con algunos equilibradores de carga, algunas reglas generarán un dominio para un proyecto determinado con volumen como carpeta principal y con un servidor MySql y pocos DB, pero esta es una idea cruda.

Pregunta

¿Qué solución es trabajar con una situación dada?

¿Proponer alguna estructura o configuración de acoplador para resolver configuraciones independientes?ActualizarMis archivos compuestos por docker

versión: '2.1'

Configuración de servidor único para 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

Dado esto, como dije, me gustaría tener proyectos en ejecución con diferentes versiones de PHP. Cada uno tiene lo mismonginx configuración, entonces necesita de alguna manera tener la posibilidad de ejecutarlos, fácil y simultáneamente.

Comprenda la respuesta de @Vladimir Kovpak, pero trabajar de esta manera manualmente generará mucho trabajo. Cada proyecto tiene su propia configuración docker-compose.

Lo que sería perfectoescenario 1Vaya al proyecto, ejecute el comando para construir correctamente por docker-composePodría hacer trabajo de desarrollopodría tener una página accesible a través de algunos dominios dinámicosejecutar comando para cerrar proyectoEscenario 2Vaya al proyecto, ejecute el comando para construir correctamente por docker-composeVaya a otro proyecto, ejecute el comando para construir correctamente por docker-composeVaya a otro proyecto, ejecute el comando para construir correctamente por docker-composePodría hacer trabajo de desarrollopodría tener una página accesible a través de algunos dominios dinámicosejecutar comando para cerrar proyecto

Podría funcionar con todos los proyectos al mismo tiempo. El primer paso es la proposición: cualquier inicialización y cierre estaría bien, ya que no es doloroso, debe ser rápido y fácil.

Respuestas a la pregunta(2)

Su respuesta a la pregunta