我有一个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编辑器更新行并输入容器时,该目录确实存在并包含我的项目代码。
如果我做错了或者我在错误的地方做作曲家更新,请告诉我
答案 0 :(得分:3)
RUN ...
行。
卷附加到容器。这里至少有两个选项:
COPY
命令将应用程序代码复制到映像,以便该命令之后的所有命令都可以访问它。 (不要将图像推送到任何公共Docker仓库,因为它将包含您可能不想泄漏的源代码)CMD
或ENTRYPOINT
或docker-compose中为command
选项)答案 1 :(得分:1)
您正在将您的本地卷安装在您的构建目录中,以便您在&/ 39; / var / www / website'中构建任何内容。当容器运行时,将由本地卷装载。