尝试将 libxslt 添加到 Docker 容器
Trying to add libxslt to Docker Container
我已经开始使用 Docker,使用 GitHub 中的 LAMP repo 作为我的起点。我需要添加 libxslt
库。我尝试将其添加到我的 Docker 文件中:
RUN apt-get install libxslt-dev
RUN docker-php-ext-enable libxslt-dev
但不断出现错误:E: Unable to locate package libxslt-dev
我尝试从 Docker 容器的命令行搜索库 apt-cache search libxslt
但没有得到任何结果。
任何人都可以指出正确的方向来安装这个库吗?
谢谢
下面的回答 (@vpalmerini) 正在更新 Dockerfile
:
RUN apt update && apt-get install -y libxslt-dev
RUN docker-php-ext-enable libxslt-dev
我认为有效:
Step 9/13 : RUN apt update && apt-get install -y libxslt-dev
[...]
The following additional packages will be installed:
libxslt1.1
The following NEW packages will be installed:
libxslt1-dev libxslt1.1
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 756 kB of archives.
After this operation, 3001 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 libxslt1.1 amd64 1.1.32-2.2~deb10u1 [237 kB]
Get:2 http://deb.debian.org/debian buster/main amd64 libxslt1-dev amd64 1.1.32-2.2~deb10u1 [519 kB]
Fetched 756 kB in 0s (4903 kB/s)
Selecting previously unselected package libxslt1.1:amd64.
(Reading database ... 21271 files and directories currently installed.)
Preparing to unpack .../libxslt1.1_1.1.32-2.2~deb10u1_amd64.deb ...
Unpacking libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ...
Selecting previously unselected package libxslt1-dev:amd64.
Preparing to unpack .../libxslt1-dev_1.1.32-2.2~deb10u1_amd64.deb ...
Unpacking libxslt1-dev:amd64 (1.1.32-2.2~deb10u1) ...
Setting up libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ...
Setting up libxslt1-dev:amd64 (1.1.32-2.2~deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...
Removing intermediate container b62504aca3f9
---> b62b7af34467
Step 10/13 : RUN docker-php-ext-enable libxslt-dev
---> Running in 181191c74fe5
error: 'libxslt-dev' does not exist
还尝试更改 RUN
命令以匹配找到的包:libxslt1-dev
RUN docker-php-ext-enable libxslt1-dev
仍然无法启用libxslt
更多信息,输出自:
dpkg --get-selections
包括:
libxml2-dev:amd64 install
libxrender-dev:amd64 install
libxrender1:amd64 install
libxslt1-dev:amd64 install
libxslt1.1:amd64 install
libxt-dev:amd64 install
但是运行RUN docker-php-ext-enable libxslt1-dev
还是给了
error: 'libxslt1-dev' does not exist
唯一缺少的是你必须更新你的图像包,然后你就可以安装 libxslt-dev
包:
RUN apt update && apt-get install -y libxslt-dev
您混淆了名为 xsl
的 php 扩展 与 [=12] 的 系统开发包 =](存在于您的基本映像 Debian Linux 发行版中,具有特定名称 libxslt1-dev
),这是安装 php 扩展所必需的。
这里有一个基本的 Dockerfile 可以满足您的要求。请注意,作为一种好的做法,我在单个 运行 指令中进行了安装,最后进行了一些额外的清理。
apt-get remove
行是可选的,但会进一步减少图层大小。安装 libxslt1-dev
及其所有依赖项(icu-devtools
、libicu-dev
、libicu63
、libxml2
、libxml2-dev
、libxslt1.1
)对于安装扩展。但是一旦完成,就可以删除开发包。
FROM php:7.4.2-apache-buster
RUN apt-get update && \
apt-get install -y libxslt1-dev && \
docker-php-ext-install xsl && \
apt-get remove -y libxslt1-dev icu-devtools libicu-dev libxml2-dev && \
rm -rf /var/lib/apt/lists/*
我已经开始使用 Docker,使用 GitHub 中的 LAMP repo 作为我的起点。我需要添加 libxslt
库。我尝试将其添加到我的 Docker 文件中:
RUN apt-get install libxslt-dev
RUN docker-php-ext-enable libxslt-dev
但不断出现错误:E: Unable to locate package libxslt-dev
我尝试从 Docker 容器的命令行搜索库 apt-cache search libxslt
但没有得到任何结果。
任何人都可以指出正确的方向来安装这个库吗?
谢谢
下面的回答 (@vpalmerini) 正在更新 Dockerfile
:
RUN apt update && apt-get install -y libxslt-dev
RUN docker-php-ext-enable libxslt-dev
我认为有效:
Step 9/13 : RUN apt update && apt-get install -y libxslt-dev
[...]
The following additional packages will be installed:
libxslt1.1
The following NEW packages will be installed:
libxslt1-dev libxslt1.1
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 756 kB of archives.
After this operation, 3001 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 libxslt1.1 amd64 1.1.32-2.2~deb10u1 [237 kB]
Get:2 http://deb.debian.org/debian buster/main amd64 libxslt1-dev amd64 1.1.32-2.2~deb10u1 [519 kB]
Fetched 756 kB in 0s (4903 kB/s)
Selecting previously unselected package libxslt1.1:amd64.
(Reading database ... 21271 files and directories currently installed.)
Preparing to unpack .../libxslt1.1_1.1.32-2.2~deb10u1_amd64.deb ...
Unpacking libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ...
Selecting previously unselected package libxslt1-dev:amd64.
Preparing to unpack .../libxslt1-dev_1.1.32-2.2~deb10u1_amd64.deb ...
Unpacking libxslt1-dev:amd64 (1.1.32-2.2~deb10u1) ...
Setting up libxslt1.1:amd64 (1.1.32-2.2~deb10u1) ...
Setting up libxslt1-dev:amd64 (1.1.32-2.2~deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...
Removing intermediate container b62504aca3f9
---> b62b7af34467
Step 10/13 : RUN docker-php-ext-enable libxslt-dev
---> Running in 181191c74fe5
error: 'libxslt-dev' does not exist
还尝试更改 RUN
命令以匹配找到的包:libxslt1-dev
RUN docker-php-ext-enable libxslt1-dev
仍然无法启用libxslt
更多信息,输出自:
dpkg --get-selections
包括:
libxml2-dev:amd64 install
libxrender-dev:amd64 install
libxrender1:amd64 install
libxslt1-dev:amd64 install
libxslt1.1:amd64 install
libxt-dev:amd64 install
但是运行RUN docker-php-ext-enable libxslt1-dev
还是给了
error: 'libxslt1-dev' does not exist
唯一缺少的是你必须更新你的图像包,然后你就可以安装 libxslt-dev
包:
RUN apt update && apt-get install -y libxslt-dev
您混淆了名为 xsl
的 php 扩展 与 [=12] 的 系统开发包 =](存在于您的基本映像 Debian Linux 发行版中,具有特定名称 libxslt1-dev
),这是安装 php 扩展所必需的。
这里有一个基本的 Dockerfile 可以满足您的要求。请注意,作为一种好的做法,我在单个 运行 指令中进行了安装,最后进行了一些额外的清理。
apt-get remove
行是可选的,但会进一步减少图层大小。安装 libxslt1-dev
及其所有依赖项(icu-devtools
、libicu-dev
、libicu63
、libxml2
、libxml2-dev
、libxslt1.1
)对于安装扩展。但是一旦完成,就可以删除开发包。
FROM php:7.4.2-apache-buster
RUN apt-get update && \
apt-get install -y libxslt1-dev && \
docker-php-ext-install xsl && \
apt-get remove -y libxslt1-dev icu-devtools libicu-dev libxml2-dev && \
rm -rf /var/lib/apt/lists/*