我是一个完整的码头新手,但必须维持一个现有的制度。我使用的Dockerfile如下所示:
FROM php:5.6-apache
RUN 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当我运行“”时,一切似乎都正常,直到我得到错误:
configure: error: png.h not found.
The command '/bin/sh -c docker-php-ext-install gd' returned a non-zero code: 1造成这一错误的原因是什么?
发布于 2016-09-23 10:30:57
应该将libpng-dev包添加到Dockerfile中
FROM php:5.6-apache
RUN 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 f03522715567
Successfully built 9d69212196a2如果你有任何错误请告诉我。
编辑:
你应该看到这样的东西:
REPOSITORY TAG IMAGE ID CREATED SIZE
sitename latest 9d69212196a2 19 minutes ago 414 MB
<none> <none> b6c69576a359 25 minutes ago 412.3 MBEDIT2:
只是为了检查每件事:
请以这样的方式运行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
希望这能有所帮助。
发布于 2020-04-26 12:25:49
这不是OP的情况,但是我发现对于那些使用php:7.4-fpm-alpine的人来说,语法有点不同。
FROM php:7.4-fpm-alpine
# ... Other instructions ...
# Setup GD extension
RUN apk add --no-cache \
freetype \
libjpeg-turbo \
libpng \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd \
--with-freetype=/usr/include/ \
# --with-png=/usr/include/ \ # No longer necessary as of 7.4; https://github.com/docker-library/php/pull/910#issuecomment-559383597
--with-jpeg=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-enable gd \
&& apk del --no-cache \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
&& rm -rf /tmp/*
# ... Other instructions ...发布于 2019-05-19 06:05:12
这个Dockerfile和Php7 https://hub.docker.com/r/giapnh/php7-gd一起工作。
FROM php:7-fpm
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN apt-get update -y && apt-get install -y libwebp-dev libjpeg62-turbo-dev libpng-dev libxpm-dev \
libfreetype6-dev
RUN apt-get update && \
apt-get install -y \
zlib1g-dev
RUN docker-php-ext-install mbstring
RUN apt-get install -y libzip-dev
RUN docker-php-ext-install zip
RUN docker-php-ext-configure gd --with-gd --with-webp-dir --with-jpeg-dir \
--with-png-dir --with-zlib-dir --with-xpm-dir --with-freetype-dir \
--enable-gd-native-ttf
RUN docker-php-ext-install gd
CMD ["php-fpm"]
EXPOSE 9000https://stackoverflow.com/questions/39657058
复制相似问题