来自 Composer 的 php-fpm docker 中的 Composer:1.8.4

我有一个构建 php-fpm 映像的 .dockerfile,我尝试从 docker 映像安装作曲家,如下所示:


FROM php:7.3.3-fpm-alpine as base


WORKDIR /var/www


# Override Docker configuration: listen on Unix socket instead of TCP

RUN sed -i "s|listen = 9000|listen = /var/run/php/fpm.sock\nlisten.mode = 0666|" /usr/local/etc/php-fpm.d/zz-docker.conf


# Install dependencies

RUN set -xe \

    && apk add --no-cache bash icu-dev \

    && docker-php-ext-install pdo pdo_mysql intl pcntl


CMD ["php-fpm"]


FROM composer:1.8.4 as composer


RUN rm -rf /var/www && mkdir /var/www

WORKDIR /var/www


COPY composer.* /var/www/


ARG APP_ENV=dev


RUN set -xe \

    && if [ "$APP_ENV" = "prod" ]; then export ARGS="--no-dev"; fi \

    && composer install --prefer-dist --no-scripts --no-progress --no-suggesthere

问题是 COPY Composer.* /var/www/ 似乎无法正常工作,因为它抛出错误:

  • Composer install --prefer-dist --no-scripts --no-progress --no-suggest --no-interaction --no-dev Composer 在 /var/www 中找不到composer.json 文件

似乎作曲家图像丢失了一些东西,或者我跳过了一些步骤,你能帮忙吗,我对 docker 和 php 都是新手。


长风秋雁
浏览 81回答 1
1回答

侃侃尔雅

问题在WORKDIR /var/wwwWORKDIR 命令用于定义任意给定时间 Docker 容器的工作目录。该命令在 Dockerfile 中指定。任何 RUN、CMD、ADD、COPY或 ENTRYPOINT 命令都将在指定的工作目录中执行。
打开App,查看更多内容
随时随地看视频慕课网APP