【发布时间】:2020-12-20 00:00:58
【问题描述】:
我有一个应用程序,我想通过 Docker 在我的笔记本电脑上安装它以进行本地开发。该应用程序需要来自 composer 的库。
我想避免在我的笔记本电脑上安装 PHP 和所有必要的扩展,只是为了能够运行 composer。
我也不想在我的应用程序容器内部构建期间运行 composer,因为我需要使用挂载绑定在本地计算机上的供应商文件夹。
这对我来说似乎是通过 docker 容器安装 composer 的完美解决方案,如 here 所述:
docker run --rm --interactive --tty \
--volume $PWD:/app \
composer install
但是,这样做时,您如何解决任何 PHP 依赖冲突?
例如
docker run --rm --interactive --tty \
--volume $PWD:/app \
composer require phpoffice/phpspreadsheet
会失败
Using version ^1.14 for phpoffice/phpspreadsheet
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- phpoffice/phpspreadsheet 1.14.1 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- phpoffice/phpspreadsheet 1.14.0 requires ext-gd * -> the requested PHP extension gd is missing from your system.
- Installation request for phpoffice/phpspreadsheet ^1.14 -> satisfiable by phpoffice/phpspreadsheet[1.14.0, 1.14.1].
我该如何解决这类问题?
【问题讨论】:
-
您需要创建自定义 docker 镜像,在 Dockerfile 中安装依赖项
-
apt-get install php-gd -
composer require foo/bar --ignore-platform-reqs无需要求即可安装
标签: php docker composer-php