在docker容器中运行composer install

时间:2016-08-07 17:23:32

标签: docker composer-php docker-compose

我有一个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

事件总是因错误

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

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

如果我做错了或者我在错误的地方做作曲家更新,请告诉我

2 个答案:

答案 0 :(得分:3)

构建映像时会运行

RUN ...行。 卷附加到容器。这里至少有两个选项:

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

答案 1 :(得分:1)

您正在将您的本地卷安装在您的构建目录中,以便您在&/ 39; / var / www / website'中构建任何内容。当容器运行时,将由本地卷装载。