2016-07-13 4 views
0

Im Moment baue ich meine eigene Entwicklungsumgebung, weil ich MAMP loswerden möchte.Mehrere Websites und PHP-Versionen mit Docker-Compose

Ich habe eine Docker-Compose-Datei mit einem Nginx-Proxy erstellt und es funktioniert im Grunde. Mein Problem ist, dass mehrere alte PHP-Projekte unterschiedliche PHP-Versionen benötigen.

Hier ist, wie weit ich schon mit meiner compose Datei bekam:

version: '2' 
services: 
    nginx-proxy: 
    image: jwilder/nginx-proxy 
    container_name: nginx-proxy 
    ports: 
     - "80:80" 
    volumes: 
     - /var/run/docker.sock:/tmp/docker.sock:ro 

    project1: 
    build: ./config/5.3.29/nginx/ 
    container_name: project1 
    volumes: 
     - ./project1/:/var/www/html 
    links: 
     - php-5.3.29:php   
    environment: 
     - "VIRTUAL_HOST=project1.org" 
    expose: 
     - "8080" 

    project2: 
    build: ./config/5.6/nginx/ 
    container_name: project2 
    volumes: 
     - ./project2/:/var/www/html 
    links: 
     - php-5.6:php  
    environment: 
     - "VIRTUAL_HOST=project2.de" 
    expose: 
     - "8081" 

    php-5.3.29: 
    build: ./config/5.3.29/php/ 
    container_name: php-5.3.29 
    ports: 
     - 9000:9000 

    php-5.6: 
    build: ./config/5.6/php/ 
    container_name: php-5.6 
    ports: 
     - 9001:9000 

Wie Sie sehen können, habe ich zwei Projekte. Die PHP-Container müssen aus demselben Pfad wie das Projekt bereitgestellt werden. Gibt es eine Möglichkeit, den Pfad dynamisch zu generieren? Projekt 3 wird auch PHP 5.6 verwenden.

Oder verwende ich den falschen Weg, um im Allgemeinen zu gehen? Am Ende wird es rund 10 Magento Online-Shops geben.

Vielen Dank für Ihre Hilfe!

+0

Häufige Frage: https://stackoverflow.com/questions/45031943/running-multiple-dockerize-projects-at-the-same-time- using-php-mysql-nginx – timiTao

Antwort

0

Sie können Verzeichnisse über der Compose-Datei wie ../sites:/var/www/html oder ähnlich referenzieren. Nicht sicher, wenn Sie "dynamisch" sagen, wenn Sie zusätzliche Logik zum Generieren der Pfade benötigen.

Im Allgemeinen scheint Ihre Benennung etwas zu spezifisch zu sein, was für eine anfängliche Arbeitsstation gut sein könnte, aber wenn sich die Dinge zu ändern beginnen, wird es schwieriger zu pflegen sein.

0

Vielen Dank für Ihre Antwort!

Heute konnte ich mein Problem mit dieser Docker-compose Datei lösen:

version: '2' 
services: 
    nginx: 
    build: ./config/nginx/ 
    container_name: nginx 
    volumes_from: 
     - www_data 
    links: 
     - php-5.3.29 
     - php-5.5 
    ports: 
     - 80:80 

    php-5.3.29: 
    build: ./config/5.3.29/ 
    container_name: php-5.3.29 
    volumes_from: 
     - www_data 

    php-5.5: 
    build: ./config/5.5/ 
    container_name: php-5.5 
    volumes_from: 
     - www_data 

    php-5.6: 
    build: ./config/5.6/ 
    container_name: php-5.6 
    volumes_from: 
     - www_data 

    www_data: 
    image: tianon/true 
    volumes: 
     - .:/var/www/html 

ich den Proxy entfernt und verwendet, um die nginx Config die verschiedenen Websites zu behandeln. Dann war ich in der Lage, die verschiedenen PHP-Versionen wie folgt umfassen:

fastcgi_pass php-5.5:9000; 
Verwandte Themen