我试图找到一种使用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容器中的composer。
我试过:
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"
我非常乐意得到关于如何将Composer添加到我的DockerFile中的路径的建议,或者我还可以做些什么来克服这个错误。
感谢您的支持。另外:如果您需要查看docker-compose.yml文件或其他任何内容,this是gitub存储库。
9条答案
按热度按时间tp5buhyn1#
在停靠文件中:
8fq7wneg2#
我可以安装composer,在我的测试文档文件中添加以下行:
下面是dockerfile:
这对我来说很有效,测试 composer 是否安装在我访问我的容器bash并执行:
zyfwsgd63#
这是我在2021年使用Laravel 8.4将其部署到Google Cloud中的CloudRun的方法:
停靠文件
//更多自定义步骤,如
//复制编写器依赖项
//更多自定义步骤
我的Dockerfile结束,以启动具有已清除优化缓存的应用
eagi6jfj4#
使用创建合成器文件的可执行文件
frebpwbc5#
在使用
curl
的文档文件中使用composer
停靠文件
vatpfxk56#
我们有基本相同的命令运行的差异,
或者,您应该将编写器bin文件路径添加到$PATH变量中。
qyuhtwio7#
我只是想建议另一种方法。
停靠文件:
lnlaulya8#
yhived7q9#
我的问题解决了。我只是停止了系统上的
firewalld
服务