Docker上のCentOS:docファイルのインストール方法


4

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のドキュメントを参照してください)。可能であれば、使用しているDockerfileを、どのイメージに基づいて引用して記述してください。
デウカリオーン

一部のパッケージまたはファイルのインストールdockerを制限yumするようなものはありません。
初心者の14

回答:


7

ドキュメントがインストールされない理由を見つけました。これはDockerの機能ではなく、CentOS Dockerイメージの機能です。Yumとrpmの両方の構成には、インストールを妨げるオプションが含まれています。次の行をDockerfileに追加することで無効にできます。

RUN sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate
RUN sed -i '/nodocs/d' /etc/yum.conf

うわー!あなたは私に多くのトラブルと時間を節約しまし。Ubuntuでもまったく同じ問題がありました。私の場合、.debパッケージには/usr/share/doc/package-name/examplesディレクトリに複数のサンプル構成ファイルがありました(これは必要でした)が、不明な理由でインストールされました!これは、Ubuntuのドッカーイメージを持っていることが判明し/etc/dpkg/dpkg.cfg.d/excludes、明示的にファイル除外を /usr/share/man/*/usr/share/doc/*/usr/share/doc/*/copyright/usr/share/doc/*/changelog.Debian.*
patryk.beza
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.