如何使用Docker运行两个PHP脚本?

46qrfjad  于 2022-12-17  发布在  PHP
关注(0)|答案(2)|浏览(144)

我有一个应用程序,与rabbitmq工作。有2个php脚本(发送和接收消息),但我只能运行一个脚本使用Dockerfile

CMD ["php", "./send.php"]

但是我必须运行两个脚本。我的导师要求我为每个脚本做两个容器:

version: "3"

services:

  rabbit_mq:
    image: rabbitmq:3-management-alpine
    container_name: 'rabbitmq'
    ports:
      - 5672:5672
      - 15672:15672
    volumes:
      - ./docker/rabbitmq/data/:/var/lib/rabbitmq/
      - ./docker/rabbitmq/log/:/var/log/rabbitmq
      - ./docker/rabbitmq/conf/:/var/conf/rabbitmq
    environment:
      - API_URL=Api:8000

  send:
    build:
      context: './docker'
      dockerfile: Dockerfile
    image: php:7.4.cli
    container_name: send
    ports:
      - 8000:8000
    volumes:
      - ./:/app
    depends_on:
      - rabbit_mq

  receive:
    image: php:7.4.cli
#    build:
#      context: './docker'
#      dockerfile: Dockerfile
    container_name: receive
    ports:
      - 8001:8001
    volumes:
      - ./:/app
    depends_on:
      - rabbit_mq

我可以做些什么来运行两个脚本使用“docker-composite up”命令?我农奴了很多网页,但找不到任何东西,我真的需要你的帮助!

erhoui1w

erhoui1w1#

你没有指定这些脚本是否终止进程,但是要运行它们,你可以像这样使用docker-compose:

version: "3"

services:
  rabbit_mq:
    # existing configuration

  send:
    # existing configuration
    command: ["php", "./send.php"]

  receive:
    # existing configuration
    command: ["php", "./receive.php"]
inb24sb2

inb24sb22#

如果你想把它作为docker-compose的一部分来运行,你可以把这些行添加到composer文件中的某些容器块中:

command: php send.php
command: php receive.php

https://docs.docker.com/compose/compose-file/#command
如果你需要更复杂的东西,比如在失败时重启,看看使用'supervisor'。

相关问题