为什么 Docker 不加载 Tidy?
Why won't Docker load Tidy?
我正在尝试使用 phpdocx 在 laravel api 应用程序中从 HTML 创建一个 docx 文件。
为了使用这个转换工具,需要安装Tidy。
我像这样在 docker 文件中包含了 tidy
FROM php:7.2-fpm-stretch
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libicu-dev \
openssh-client\
git \
curl \
libmemcached-dev \
libz-dev \
libpq-dev \
libjpeg-dev \
libpng-dev \
tidy \
libfreetype6-dev \
libssl-dev \
libmcrypt-dev \
gnupg \
&& rm -rf /var/lib/apt/lists/*
但是当我在代码中添加 phpinfo();
时,找不到 tidy。
奇怪的是,当我访问 docker 的 bash 时,我可以 tidy -v
并且我得到 HTML Tidy for Linux version 5.2.0
我取消了与项目关联的所有 php.ini 文件中的 extension=php_tidy.dll
注释,并多次重建图像。
当我 运行 check.php
包含在 phpdocx 中时,我可以在结果中找到这个错误 Warning You must install Tidy for PHP if you want to use embedHTML in your Word documents.
我试过 docker pull imega/tidy
没用。
我已经坚持了一天多了,如果有人知道我哪里出错了,我将不胜感激。
root@c790d433727a:/var/www/vendor/phpdocx# php check.php
OK PHP version is 7.2.22
OK Zip support is enabled.
OK DOM support is enabled.
OK XML support is enabled.
Warning You must install Tidy for PHP if you want to use embedHTML in your Word documents.
OK mbstring is enabled.
root@c790d433727a:/var/www/vendor/phpdocx# tidy -v
HTML Tidy for Linux version 5.2.0
查看示例 Docker 文件:
FROM php:7.2-fpm-stretch
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get install -y libtidy-dev
RUN docker-php-ext-install -j$(nproc) tidy
如果你这样构建它:
docker build --tag Whosebug .
和运行这样:
docker run --rm -it --entrypoint="" Whosebug /bin/sh
您将登录到 CLI,并可以通过这种方式检查已安装的扩展:
php -m
给出列表:
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tidy
tokenizer
xml
xmlreader
xmlwriter
zlib
[Zend Modules]
与:
tidy
下:
[PHP Modules]
玩得开心 :)
几天前我遇到了同样的问题,问题不仅在于 tidy 库本身,还缺少其他 tidy 依赖项 libtidy-dev,这非常适合安装和加载 tidy:
# Install system dependencies
RUN apt-get update && apt-get install -y \
nano \
libxml2-dev \
libzip-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libmagickwand-dev \
**libtidy-dev** \
git \
curl \
zip \
ssh\
wget\
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install \
exif \
gd \
soap \
zip
RUN docker-php-ext-install tidy \
&& docker-php-ext-enable tidy
我正在尝试使用 phpdocx 在 laravel api 应用程序中从 HTML 创建一个 docx 文件。
为了使用这个转换工具,需要安装Tidy。
我像这样在 docker 文件中包含了 tidy
FROM php:7.2-fpm-stretch
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libicu-dev \
openssh-client\
git \
curl \
libmemcached-dev \
libz-dev \
libpq-dev \
libjpeg-dev \
libpng-dev \
tidy \
libfreetype6-dev \
libssl-dev \
libmcrypt-dev \
gnupg \
&& rm -rf /var/lib/apt/lists/*
但是当我在代码中添加 phpinfo();
时,找不到 tidy。
奇怪的是,当我访问 docker 的 bash 时,我可以 tidy -v
并且我得到 HTML Tidy for Linux version 5.2.0
我取消了与项目关联的所有 php.ini 文件中的 extension=php_tidy.dll
注释,并多次重建图像。
当我 运行 check.php
包含在 phpdocx 中时,我可以在结果中找到这个错误 Warning You must install Tidy for PHP if you want to use embedHTML in your Word documents.
我试过 docker pull imega/tidy
没用。
我已经坚持了一天多了,如果有人知道我哪里出错了,我将不胜感激。
root@c790d433727a:/var/www/vendor/phpdocx# php check.php
OK PHP version is 7.2.22
OK Zip support is enabled.
OK DOM support is enabled.
OK XML support is enabled.
Warning You must install Tidy for PHP if you want to use embedHTML in your Word documents.
OK mbstring is enabled.
root@c790d433727a:/var/www/vendor/phpdocx# tidy -v
HTML Tidy for Linux version 5.2.0
查看示例 Docker 文件:
FROM php:7.2-fpm-stretch
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get install -y libtidy-dev
RUN docker-php-ext-install -j$(nproc) tidy
如果你这样构建它:
docker build --tag Whosebug .
和运行这样:
docker run --rm -it --entrypoint="" Whosebug /bin/sh
您将登录到 CLI,并可以通过这种方式检查已安装的扩展:
php -m
给出列表:
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tidy
tokenizer
xml
xmlreader
xmlwriter
zlib
[Zend Modules]
与:
tidy
下:
[PHP Modules]
玩得开心 :)
几天前我遇到了同样的问题,问题不仅在于 tidy 库本身,还缺少其他 tidy 依赖项 libtidy-dev,这非常适合安装和加载 tidy:
# Install system dependencies
RUN apt-get update && apt-get install -y \
nano \
libxml2-dev \
libzip-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libmagickwand-dev \
**libtidy-dev** \
git \
curl \
zip \
ssh\
wget\
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install \
exif \
gd \
soap \
zip
RUN docker-php-ext-install tidy \
&& docker-php-ext-enable tidy