gpt4 book ai didi

php - 未在php:5.6-cli docker中安装libgd

转载 作者:行者123 更新时间:2023-12-02 18:49:10 25 4
gpt4 key购买 nike

我在一个容器中有一个项目,我正在尝试使用gd lib创建图像。

我在容器的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吗? ;)
  • 关于php - 未在php:5.6-cli docker中安装libgd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42163790/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com