我尝试想出一种使用 docker 和 laravel 创建开发环境的方法。
我有以下dockerfile:
FROM php:7.1.3-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev \
mysql-client libmagickwand-dev --no-install-recommends \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& docker-php-ext-install mcrypt pdo_mysql
&& chmod -R o+rw laravel-master/bootstrap laravel-master/storage
Laravel 要求 composer 在处理数据库迁移时调用 composer dump-autoload。因此,我需要 docker 容器内的作曲家。
我试过了:
RUN curl -sS https://getcomposer.org/installer | php -- \
--install-dir=/usr/bin --filename=composer
但是当我打电话
docker-compose up
docker-compose exec app composer dump-autoload
它抛出以下错误:
rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: container_linux.go:247: starting container process caused \"exec: \\\"composer\\\": executable file not found in $PATH\"\n"
我会非常乐意建议我如何将作曲家添加到我的 dockerfile 中的 PATH 或者我可以做些什么来克服这个错误。
谢谢你的支持。另外:如果您需要查看 docker-compose.yml 文件或其他任何内容, 这 是 gitub 存储库。
原文由 Andre 发布,翻译遵循 CC BY-SA 4.0 许可协议
我可以安装 composer 在我的测试 dockerfile 中添加这一行:
这是码头文件:
它对我有用,为了测试是否安装了作曲家,我访问我的容器 bash 并执行: