2017-02-22 6 views
3

Ich muss Docker-Compose mit zwei Containern ausführen, - php-fpm und php-cli. Obwohl ich einen anderen Behälter mit Komponist benötige. Hier ist meine Docker-compose.yml Datei:Wie docker-compose mit php-fpm und php-cli ausführen?

version: '2' 
services: 
nginx: 
    container_name: travellizy_nginx 
    build: ./docker/nginx 
    restart: always 
    #ports: 
    # - "8080:80" 
    volumes: 
     - ./api:/api 
     - ./docker/nginx/nginx.conf:/etc/nginx/conf.d/site.conf 
     - ./docker/nginx/log:/var/log/nginx 
    links: 
     - php 
     - mysql 
    networks: 
     travelnet: 
      ipv4_address: 172.27.0.101 

php: 
    container_name: travellizy_php 
    build: ./docker/php 
    restart: always 
    volumes: 
     - ./api:/api 
     - ./docker/php/php.ini:/usr/local/etc/php/conf.d/php.ini 
     - ./docker/php/php-fpm.conf:/usr/local/etc/php-fpm.d/php-fpm.conf 
     - ./docker/php/log:/var/log/php 

    links: 
     - mysql 
    networks: 
     travelnet: 
      ipv4_address: 172.27.0.118 

php-cli: 
    container_name: travellizy_php_cli 
    build: ./docker/php-cli 
    restart: always 
    volumes_from: 
     - php 
    ports: 
     - "9005:9000" 
    links: 
     - mysql 
    networks: 
     travelnet: 
      ipv4_address: 172.27.0.119 

composer: 
    container_name: travellizy_composer 
    build: ./docker/composer 
    working_dir: /api 
    volumes: 
     - ./api:/api 
    networks: 
     travelnet: 
      ipv4_address: 172.27.0.120 

mysql: 
    container_name: travellizy_db_mysql 
    build: ./docker/db/mysql 
    restart: always 
    ports: 
     - "3306:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: travellizy 
     MYSQL_DATABASE: travellizy 
     MYSQL_USER: travellizy 
     MYSQL_PASSWORD: travellizy 
    volumes: 
     - ./docker/db/mysql/my.cnf:/etc/mysql/conf.d/my.cnf 
     - ./docker/db/mysql/log:/var/log/mysql 
    networks: 
     travelnet: 
      ipv4_address: 172.27.0.135 

networks: 
travelnet: 
    driver: bridge 
    ipam: 
     config: 
      - subnet: 172.27.0.0/24 

Wenn ich Docker-komponieren laufen bis -d - Container mit php-cli geworden immer neu zu starten und Komponist Behälter gerade stoppt.

+0

Warum verwenden Sie Neustart: immer in PHP? Warum rennst du Composer nicht in "travellizy_php"? – ivoba

Antwort

6

PHP CLI läuft nicht im Daemon-Modus. Du läufst es und dann hört es auf. Als nächstes versucht Docker, es neu zu starten (Sie haben restart: always Richtlinie für php-cli festgelegt). :)

IMO php-cli und composer Dienste sind redundant. Sie können php Service für Ihre Bedürfnisse verwenden. Einfach ausführen docker-compose run php php [path to script]

Verwandte Themen