如何使用Docker运行多个容器?

时间:2018-09-20 02:22:09

标签: docker docker-compose

我想在docker上运行laravel,所以我创建了一个docker-compose.yml,如下所示:

version: '3'
services:
  web:
    image: my-laravel-image
    ports:
        - 3021:8000
    volumes:
        - ./laravel-app:/app

my-laravel-image 由以下人员创建:

FROM php:7
RUN apt-get update -y && apt-get install -y libmcrypt-dev openssl
RUN docker-php-ext-install pdo mcrypt mbstring
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /app
COPY . /app

CMD php artisan serve --host=0.0.0.0 --port=8000
EXPOSE 8000

当我运行 docker-compose up --force-recreate -d 然后在浏览器中访问 127.0.0.1:3021 时,它会成功运行。

现在我想使用 php composer 官方映像来构建两个容器并相互连接,该怎么做?

以下是我尝试过的操作:

version: '3'

services:
    php:
        image: php:7-fpm
        ports: 
          - "3021:8000"
        volumes:
            - ./laravel-app:/app
    composer:
        image: composer:latest
        volumes:
            - ./laravel-app:/app
        working_dir: /app
        command: ["install","php artisan serve --host=0.0.0.0"]
        depends_on:
            - php

当我运行 docker-compose up --force-recreate -d docker-compose log 时,它显示以下错误:

Invalid argument php artisan serve --host=0.0.0.0. Use "composer require php artisan serve --host=0.0.0.0" instead to add packages to your composer.json.

如何解决?

1 个答案:

答案 0 :(得分:1)

我认为问题是这样的,您正在尝试执行以下命令:

$ install php artisan serve --host=0.0.0.0

当它们应该是两个这样的命令时:

$ composer install & php artisan serve --host=0.0.0.0

致谢。