
CentOS 6.5 ベースの Docker コンテナに Kolab グループウェアをインストールしようとしています。一見、公式パッケージのインストールは問題なく機能しているように見えました。しかし、その後、セットアップ スクリプトを実行しようとすると、いくつかのエラーが発生しました。調査した結果、セットアップ スクリプトは にある SQL スキーマ ファイルを使用しようとしていることがわかりました/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