php:5.6-cli docker 中未安装 libgd
libgd not installed in php:5.6-cli docker
我在容器中有一个项目,我正在尝试使用 gd 库创建图像。
我在容器的 bash 中执行以下命令:
apt-get install php5-gd
重启执行后没有任何变化php -m
我该怎么办?
编辑:
我添加到我的 Dockerfile:
RUN apt-get -qq update && apt-get -qq install libpng-dev
RUN docker-php-ext-install gd
我执行docker build -t [name]
但是当我执行 bash 并输入:php -m
[PHP Modules]
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
不要手动安装 gd。有 docker-php-ext-install
。
在 dockerfile 中,添加:
RUN docker-php-ext-install gd
docker-php-ext-install
有点烦人,您必须手动确定需要哪些依赖项。它们不会自动解决。因此,该命令将自行崩溃,其中:
configure: error: png.h not found.
如果您查找错误,您会发现您需要 libpng-dev
。
因此,最后,整个 Dockerfile
应该看起来像这样:
FROM php:5.6-cli
RUN apt-get -qq update && apt-get -qq install libpng-dev
RUN docker-php-ext-install gd > /dev/null
docker-php-ext-install 的输出有点冗长,因此我喜欢将其输出通过管道传输到 /dev/null
。仍会打印错误和警告。
您可以通过 运行 连接图像来检查图像是否具有正确的扩展名:
docker build -t php-gd .
docker run php-gd /bin/bash -c "php -m | grep gd"
将打印:
gd
在 docker-compose 堆栈中相同:
docker-compose.yml
:
gd-example:
build: .
tty: true
docker-compose up --build -d
docker ps // to find container's name. You may also set in the config
docker exec -it docker_gd-example_1 php -m | grep gd
两个旁注:
从你的问题来看,不清楚你是否构建了你的容器然后 运行 apt-get install php5-gd
从它。如果是这样,那么只会在该容器中安装 php5-gd 并且每次重新创建它时,它都会消失。始终从 Dockerfile
.
中向容器添加内容
试试 php:7.1-cli
。你真的需要支持 php 5.6 吗? ;)
我在容器中有一个项目,我正在尝试使用 gd 库创建图像。
我在容器的 bash 中执行以下命令:
apt-get install php5-gd
重启执行后没有任何变化php -m
我该怎么办?
编辑:
我添加到我的 Dockerfile:
RUN apt-get -qq update && apt-get -qq install libpng-dev
RUN docker-php-ext-install gd
我执行docker build -t [name]
但是当我执行 bash 并输入:php -m
[PHP Modules]
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
不要手动安装 gd。有 docker-php-ext-install
。
在 dockerfile 中,添加:
RUN docker-php-ext-install gd
docker-php-ext-install
有点烦人,您必须手动确定需要哪些依赖项。它们不会自动解决。因此,该命令将自行崩溃,其中:
configure: error: png.h not found.
如果您查找错误,您会发现您需要 libpng-dev
。
因此,最后,整个 Dockerfile
应该看起来像这样:
FROM php:5.6-cli
RUN apt-get -qq update && apt-get -qq install libpng-dev
RUN docker-php-ext-install gd > /dev/null
docker-php-ext-install 的输出有点冗长,因此我喜欢将其输出通过管道传输到 /dev/null
。仍会打印错误和警告。
您可以通过 运行 连接图像来检查图像是否具有正确的扩展名:
docker build -t php-gd .
docker run php-gd /bin/bash -c "php -m | grep gd"
将打印:
gd
在 docker-compose 堆栈中相同:
docker-compose.yml
:
gd-example:
build: .
tty: true
docker-compose up --build -d
docker ps // to find container's name. You may also set in the config
docker exec -it docker_gd-example_1 php -m | grep gd
两个旁注:
从你的问题来看,不清楚你是否构建了你的容器然后 运行
apt-get install php5-gd
从它。如果是这样,那么只会在该容器中安装 php5-gd 并且每次重新创建它时,它都会消失。始终从Dockerfile
. 中向容器添加内容
试试
php:7.1-cli
。你真的需要支持 php 5.6 吗? ;)