5

I’m trying to install the Kolab groupware in a Docker container based on CentOS 6.5. At first glance, the installation of the official packages seemed to work without problems. But afterwards, when I tried to run the setup script, several errors occurred. After doing some research, I found out, that the setup script tries to use an sql schema file, located in /usr/share/doc/kolab-webadmin-3.1.5. According to repoquery -l kolab-webadmin, the sql file is indeed included in the package. It is, however, not installed.

I suspect that this is somehow a “feature” of Docker, which tries to avoid the installation of unnecessary documentation files into the container, but could not find any information about it.

Is there a way to install the missing files through yum?


Update:

Here is a minimal example to illustrate the problem: First create a new centos container:

docker run -t -i centos:centos6 /bin/bash

Inside, install the yum-utils package:

yum install -y yum-utils

Afterwards, if you use repoquery to inspect the contents of the yum-utils package

repoquery -l yum-utils

you will notice that the package contains files under /usr/share/doc/yum-utils-1.1.30. This folder, however, does not exist.

2
  • 1
    Please try to rephrase your question by adding more details: what image are you using, how do you instantiate your container (and if those terms don't mean much to you please consult the Docker documentation). If possible, please quote and state what Dockerfile you are using, based on what image.
    – deucalion
    Sep 7 '14 at 1:27
  • There is nothing as such with docker as restricting yum to install some packages or files.
    – beginer
    Sep 7 '14 at 6:12
11

I found out why the docs are not installed: it is not a feature of Docker but of the CentOS Docker image. Yum and rpm configs both contain options that prevent the installation. They may be disabled by adding the following lines to the Dockerfile:

RUN sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate
RUN sed -i '/nodocs/d' /etc/yum.conf
1
  • 1
    Wow! You saved me a lot of trouble and time. I had exactly the same problem on Ubuntu. In my case .deb package had multiple sample configuration files in /usr/share/doc/package-name/examples directory (which I needed), but for unknown reasons they were installed at all! It turned out that Ubuntu Docker image has /etc/dpkg/dpkg.cfg.d/excludes file which explicitly excludes /usr/share/man/*, /usr/share/doc/*, /usr/share/doc/*/copyright, /usr/share/doc/*/changelog.Debian.*. Mar 21 '19 at 9:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.