GitLab PHP docker 图像 - 系统中缺少请求的 PHP 扩展 gd

GitLab PHP docker image - the requested PHP extension gd is missing from your system

我正在为我们的应用程序编写一些单元测试,我们使用 GitLab CI 和 GitLab Runner v11.11.1,并使用 Docker 执行器和图像 php:7.1。

当 运行ning composer install(我们的 composer 版本是 1.10.17)时,我在一些必需的包上得到以下错误:

the requested PHP extension gd is missing from your system

我在我们的 gitlab-ci.yml:

上尝试了一些东西
apt-get update -yqq
apt-get install -yqq libpng-dev

但这也产生了同样的错误。

我还尝试从 composer.json 文件中获取 ext-gd

composer require ext-gd

但是我得到了这个错误:

The requested PHP extension ext-gd ^7.1 is missing from your system. Install or enable PHP's gd extension.

我最后一次尝试是:

apt-get install php-common
phpenmod gd

但这给了我这个错误:

Unable to locate package php-common


有谁知道如何简单地启用 PHP 扩展 gd 以便我可以 运行 我的单元测试?

您需要 PHP GD 库。对于 Debian 和基于 Debian 的系统,例如Ubuntu,以及基于 Debian 的 Docker 容器使用:

apt-get install -qy php-gd

如果还是不清楚,或者你有older/other系统就搜索

apt-cache search php gd

并会找出可能的候选包。

对于 Docker 容器,您似乎需要不同的路径,因此 Dockerfile:

FROM php:7.1-apache-buster
RUN apt-get update
RUN apt-get upgrade -qqy
RUN php -v
RUN apt-get install -qy libpng-dev
RUN docker-php-ext-install gd

我在将此添加到我的 gitlab-ci.yml 文件时修复了错误:

...
before_script:
  - apt-get update -yqq
  - apt-get install libjpeg-dev libpng-dev -yqq
  - docker-php-ext-install gd
...