问题描述
我有一个.dockerfile可以构建一个PHP-fpm映像,我尝试从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作曲家。* / var / www /似乎无法正常工作,因为它引发了错误:
- composer install --prefer-dist --no-scripts --no-progress --no-suggest --no-interaction --no-dev Composer在/ var / www 中找不到composer.json文件
似乎作曲家图像丢失了某些内容,或者我跳过了一些步骤,请您帮忙,我对docker和PHP都是陌生的。
解决方法
问题
WORKDIR /var/www
WORKDIR命令用于在任何给定时间定义Docker容器的工作目录。该命令在Dockerfile中指定。
任何RUN,CMD,ADD, COPY 或ENTRYPOINT命令都将在 指定的工作目录。
来源:https://www.educative.io/edpresso/what-is-the-workdir-command-in-docker