如何在 docker 容器中安装 PHP composer

新手上路,请多包涵

我尝试想出一种使用 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 许可协议

阅读 1.3k
2 个回答

我可以安装 composer 在我的测试 dockerfile 中添加这一行:

 # Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

这是码头文件:

 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

原文由 Brayan Caldera 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 dockerfile 中使用 composer 使用 curl

 RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

Dockerfile

 FROM 8.1.4-fpm

RUN apt-get update && apt-get install -y \
    git \
    curl \
    zip \
    unzip

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /var/www

原文由 MHAMMED TALHAOUY 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题