作者:Daro_olingke_572 | 来源:互联网 | 2022-12-10 09:16
我尝试找出一种使用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要求作曲家在进行数据库迁移时调用作曲家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"
我将很乐意为我提供如何在dockerfile中将composer添加到PATH的建议,或者我还能做些什么来克服此错误。
感谢您的支持。另外:如果您需要查看docker-compose.yml文件或其他内容,则这是gitub存储库。
1> 小智..:
我可以安装composer在我的测试dockerfile上添加以下行:
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
这是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
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
它对我有用,可以通过访问我的容器bash并执行以下命令来测试是否安装了作曲家:
composer --version
Composer version 1.6.5 2018-05-04 11:44:59