正在docker容器中运行composer安装



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

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

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

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 repo,因为它将包含你可能不想泄露的源代码(
  • 使用在容器上运行的命令安装composer依赖项(Dockerfile中的CMDENTRYPOINT或docker composer中的command选项(

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

相关内容

  • 没有找到相关文章

最新更新