【发布时间】:2016-11-04 20:00:39
【问题描述】:
我目前正在学习 Docker,并使用了 2 周。现在我有一个非常简单的任务,通过 Composer 安装 PHP 库。这通常是在没有 Docker 的情况下工作时:
composer install
现在由于我使用的是 Docker,我发现有一个 Docker 容器,它为我保存作曲家:
docker run --rm -v $(pwd):/app composer/composer install
这工作得很好,但是那里有一些库,需要安装特定的 php 库,比如 bcmath,所以我将它添加到我的 Dockerfile 中
FROM php:7.0-apache
RUN docker-php-ext-install bcmath <-- added this line
COPY . /var/www/html
WORKDIR /var/www/html
EXPOSE 80
当我重建我的容器时,此代码返回 true
var_dump(extension_loaded('bcmath'))
万岁! BCMath安装正确,但是composer无法识别,因为composer容器中没有安装库!
现在我可以通过使用忽略它
docker run --rm -v $(pwd):/app composer/composer install --ignore-platform-reqs
但在我看来,这是一个肮脏的解决方法,作曲家无法验证我的平台。除了在我的 Dockerfile 中下载 composer 并且不重用现有容器之外,还有什么干净的解决方案吗?
【问题讨论】:
标签: php docker composer-php