如何使用php-fpm和php-cli运行docker-compose?

我需要用两个容器运行docker-compose, – php-fpm和php-cli。 虽然我需要另一个容器与composer php。 这是我的docker-compose.yml文件:

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 

当我用php-cli运行docker-compose -d-container时,总是重新启动,composer容器停止运行。

守护进程模式下的PHP cli没有运行。 你运行它,然后停止。 接下来,Docker尝试重新启动它(您已经设置了restart: alwaysphp-cli策略)。 🙂

国际海事组织php-clicomposer服务是多余的。 您可以使用php服务满足您的需求。 只需运行docker-compose run php php [path to script]