繁体   English   中英

在Docker容器中运行composer安装

[英]Running composer install in docker container

我有一个docker-compose.yml脚本,看起来像这样:

version: '2'
services:
  php:
    build: ./docker/php
  volumes:
    - .:/var/www/website

位于./docker/php中的DockerFile看起来像这样:

FROM php:fpm

RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
RUN mv composer.phar /usr/local/bin/composer
RUN composer update -d /var/www/website

Eventho这总是失败并显示错误

[RuntimeException]
Invalid working directory specified, /var/www/website does not exist.

当我删除RUN composer更新行并输入容器时,该目录确实存在并且包含我的项目代码。

请告诉我我做错了什么还是在错误的地方进行了作曲家更新

RUN ...行在构建映像时运行。 卷已连接到容器。 您在这里至少有两个选择:

  • 使用COPY命令将您的应用代码复制到映像中,以便该命令之后的所有命令都可以访问它。 (不要将映像推送到任何公共Docker存储库,因为它将包含您可能不想泄漏的源)
  • 使用在容器上运行的命令安装composer依赖项( ENTRYPOINT中的CMDENTRYPOINTENTRYPOINT -compose中的command选项)

您正在将本地卷挂载到构建目录上,因此在容器运行时,在'/ var / www / website'中构建的任何内容都将被本地卷挂载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM