在Docker中安装GD
我是Docker的新手,但是必须维护现有系统。我正在使用的Dockerfile如下所示:
FROM php:5.6-apacheRUN docker-php-ext-install mysql mysqli
RUN apt-get update -y && apt-get install -y sendmail
RUN apt-get update && \
apt-get install -y \
zlib1g-dev
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install zip
RUN docker-php-ext-install gd
当我运行“ docker build [sitename]”时,一切正常,直到出现错误:
configure: error: png.h not found.The command '/bin/sh -c docker-php-ext-install gd' returned a non-zero code: 1
此错误的原因是什么?
回答:
您应该将libpng-dev
软件包添加到您的Dockerfile
:
FROM php:5.6-apacheRUN docker-php-ext-install mysql mysqli
RUN apt-get update -y && apt-get install -y sendmail libpng-dev
RUN apt-get update && \
apt-get install -y \
zlib1g-dev
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install zip
RUN docker-php-ext-install gd
然后使用转到目录Dockerfile
并运行:
docker build -t sitename .
在我的情况下有效:
Removing intermediate container f03522715567Successfully built 9d69212196a2
让我知道您是否遇到任何错误。
您应该会看到以下内容:
REPOSITORY TAG IMAGE ID CREATED SIZEsitename latest 9d69212196a2 19 minutes ago 414 MB
<none> <none> b6c69576a359 25 minutes ago 412.3 MB
只是仔细检查所有内容:
请以docker build
这种方式运行命令:
docker build -t sitename:1.0 .
(添加:1.0
不应更改任何内容,我添加它只是为了在docker images
输出中添加其他行)
然后启动容器:
docker run --name sitename_test -p 80:80 sitename:1.0
它应该工作正常。
我以为apache使用的是标准端口(80)-也许您需要进行调整。如果您有其他服务/容器在端口80上侦听,则可以使容器在其他端口上侦听:
docker run --name sitename_test -p 8080:80 sitename:1.0
这会将流量从端口8080重定向到容器“内部”的端口80。
通常,您在后台运行容器。为此,将-d
选项添加到docker run
命令中(但是出于测试目的,您可以省略-d
在控制台中看到的输出)。
如果您决定在后台运行容器,则可以使用来检查日志docker logs sitename_test
。要遵循日志(并查看日志中的更新),请使用-f
选项:
docker logs -f sitename_test
希望能有所帮助。
以上是 在Docker中安装GD 的全部内容, 来源链接: utcz.com/qa/426054.html