如何在docker-compose中使用正式的作曲家映像?

时间:2019-04-06 20:18:49

标签: php docker docker-compose composer-php

这是我的docker-compose文件

proc registry

但是,当我运行version: '3' services: app: image: php7.1-apache-stretch container_name: php-app volumes: - .:/var/www/html ports: - 8080:80 composer: image: composer:1.8 container_name: composer-app volumes: - .:/var/www/html 时,唯一运行的容器是docker-compose up。如何在docker-compose文件中运行composer并与我的应用容器通信?

1 个答案:

答案 0 :(得分:0)

理想情况下,您可以在多阶段构建中使用Composer映像,以避免必须将其及其所有依赖项安装在主机上。

为此,创建一个像这样的Dockerfile:

FROM composer:1.8 AS composer

FROM php:7.1-apache-stretch

COPY --from=composer /usr/bin/composer /usr/bin/composer

WORKDIR /app

COPY . .

# Place here your command that uses Composer
RUN composer install

注意:由于我不是PHP开发人员,因此您需要查看RUN命令...;)

现在docker-compose.yml看起来像这样:

version: "3"

services:
  app:
    build: .
    image: php-app:1.0
    container_name: "php-app"
    ports: 
      - "8080:80"

您不再需要该卷,因为文件是在构建时复制到映像中的。

构建映像并运行服务:

docker-compose up --build -d