
我正在嘗試在基於 CentOS 6.5 的 Docker 容器中安裝 Kolab 元件。乍一看,官方軟體包的安裝似乎沒有問題。但後來,當我嘗試運行安裝腳本時,出現了幾個錯誤。經過一些研究後,我發現安裝腳本嘗試使用位於/usr/share/doc/kolab-webadmin-3.1.5
.根據repoquery -l kolab-webadmin
,該sql檔案確實包含在套件中。但是,它尚未安裝。
我懷疑這在某種程度上是 Docker 的一個“功能”,它試圖避免將不必要的文件文件安裝到容器中,但找不到任何有關它的資訊。
有沒有辦法透過yum安裝遺失的檔案?
更新:
下面是一個最小的例子來說明這個問題:先建立一個新的 centos 容器:
docker run -t -i centos:centos6 /bin/bash
在裡面,安裝 yum-utils 套件:
yum install -y yum-utils
之後,如果您使用 repoquery 檢查 yum-utils 套件的內容
repoquery -l yum-utils
您會注意到該軟體包包含 /usr/share/doc/yum-utils-1.1.30 下的檔案。但是,該資料夾不存在。
答案1
我找到了為什麼沒有安裝文件:它不是 Docker 的功能,而是 CentOS Docker 映像的功能。 Yum 和 rpm 配置都包含封鎖安裝的選項。可以透過將以下行新增至 Dockerfile 來停用它們:
RUN sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate
RUN sed -i '/nodocs/d' /etc/yum.conf