码头工人和作曲家安装

Posted

技术标签:

【中文标题】码头工人和作曲家安装【英文标题】:docker and composer install 【发布时间】:2017-11-12 04:32:02 【问题描述】:

我在使用 docker-compose 安装 php-fpm 容器时遇到问题。

我的文件夹结构如下:

docker-compose.yml
containers/
    nginx
        Dockerfile
    php-fpm
        Dockerfile

docker-compose.yml:

version: '3'

services:
    nginx:
        build:
            context: ./containers/nginx
        ports:
            - 80:80
    php-fpm:
        build:
            context: ./containers/php-fpm
        tty: true

在 php-fpm/Dockerfile 中:

FROM php:7.1.5-fpm-alpine

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /srv/www

ENTRYPOINT composer install --prefer-source --no-interaction --no-autoloader

使用当前的 ENTRYPOINT,composer install 似乎卡在“生成自动加载文件”,因为之后没有输出任何内容,并且容器没有出现在 docker ps 列表中。

我怎样才能保持上面的文件夹结构,但仍然能够在构建或运行之后运行 composer install (在这种情况下我需要添加 if 条件)?

【问题讨论】:

【参考方案1】:

问题是你需要一个 composer.json。

请按照以下步骤操作:

    转到Get composer web -> getting started 并创建一个composer.json 文件。

    把这个composer.json文件放在你的目录结构中,如下,例如:

    docker-compose.yml 集装箱/ nginx Dockerfile php-fpm Dockerfile 作曲家/ composer.json

    挂载卷(修改您的 docker-compose.yml 文件)以在 php-fpm docker 中将 composer.json 共享到 /var/www/html,因为尽管您将 /srv/www/ 指定为工作目录,但 composer 在 /var/www/html 中查找.

版本:'3' 服务: nginx: 建造: 上下文:./containers/nginx 端口: - “80:80” php-fpm: 建造: 上下文:./containers/php-fpm tty: 真 卷: - ./composer/composer.json:/var/www/html/composer.json

希望对你有用。

【讨论】:

以上是关于码头工人和作曲家安装的主要内容,如果未能解决你的问题,请参考以下文章

法兰绒和码头工人不启动

text 码头工人和建造者

InfluxDB 和 Grafana:InfluxDB 错误:错误请求 |码头工人

角 Nginx 码头工人 404

Docker介绍

码头工人撰写孤儿容器警告