【问题标题】:Composer in php-fpm docker from composer:1.8.4来自 composer:1.8.4 的 php-fpm docker 中的 Composer
【发布时间】:2020-12-03 02:09:03
【问题描述】:

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

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 的新手。

【问题讨论】:

标签: php docker docker-compose composer-php


【解决方案1】:

问题

WORKDIR /var/www

WORKDIR 命令用于在任何给定时间定义 Docker 容器的工作目录。该命令在 Dockerfile 中指定。

任何 RUN、CMD、ADD、COPY 或 ENTRYPOINT 命令都将在 指定的工作目录。

来源:https://www.educative.io/edpresso/what-is-the-workdir-command-in-docker

【讨论】:

  • 更改为 src 但仍然抛出:Composer could not find a composer.json file in /app/~/Work/symfony-todos/src
  • @viktor 在FROM php:7.3.3-fpm-alpine as base 之后移动COPY composer.* /var/www/
猜你喜欢
  • 2017-12-13
  • 2012-11-06
  • 2018-08-19
  • 2019-12-20
  • 2017-03-05
  • 2019-07-29
  • 2014-10-26
  • 1970-01-01
  • 2021-03-18
相关资源
最近更新 更多