Composer安装(自己的容器),Docker缺少PHP扩展

CBe*_*gau 5 php composer-php docker

我目前正在学习Docker,并使用它2周.现在我有一个非常简单的任务,通过Composer安装PHP库.通常,在没有Docker的情况下工作时:

composer install
Run Code Online (Sandbox Code Playgroud)

现在因为我正在使用Docker,我发现有一个Docker容器,它为我持有作曲家:

docker run --rm -v $(pwd):/app composer/composer install
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但是有一些库,需要安装特定的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
Run Code Online (Sandbox Code Playgroud)

当我重建我的容器时,此代码返回true

var_dump(extension_loaded('bcmath'))
Run Code Online (Sandbox Code Playgroud)

万岁!BCMath安装正确,但是composer无法识别它,因为库未安装在composer容器中!

现在我可以通过使用来忽略它

docker run --rm -v $(pwd):/app composer/composer install --ignore-platform-reqs
Run Code Online (Sandbox Code Playgroud)

但在我看来,这是一个肮脏的工作,而作曲家无法验证我的平台.除了在我的Dockerfile中下载composer而不重用现有的容器之外,还有什么干净的解决方案吗?

Jen*_*och -1

您需要在同一个(!)容器 = DevContainer 中使用 PHP + PHP 扩展 + Composer。

只需使用此处提供的命令安装 Composer 即可。