CentOS en Docker: ¿Cómo instalar archivos doc?

4

Estoy tratando de instalar el software colaborativo Kolab en un contenedor Docker basado en CentOS 6.5. A primera vista, la instalación de los paquetes oficiales parecía funcionar sin problemas. Pero luego, cuando intenté ejecutar el script de configuración, ocurrieron varios errores. Después de investigar un poco, descubrí que el script de configuración intenta usar un archivo de esquema sql, ubicado en /usr/share/doc/kolab-webadmin-3.1.5. Según repoquery -l kolab-webadmin, el archivo sql está incluido en el paquete. Sin embargo, no está instalado.

Sospecho que esta es de alguna manera una "característica" de Docker, que intenta evitar la instalación de archivos de documentación innecesarios en el contenedor, pero no pudo encontrar ninguna información al respecto.

¿Hay alguna manera de instalar los archivos que faltan a través de yum?


Actualización :

Aquí hay un ejemplo mínimo para ilustrar el problema: Primero cree un nuevo contenedor centos:

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

En el interior, instale el paquete yum-utils:

yum install -y yum-utils

Luego, si usa repoquery para inspeccionar el contenido del paquete yum-utils

repoquery -l yum-utils

notará que el paquete contiene archivos en /usr/share/doc/yum-utils-1.1.30. Esta carpeta, sin embargo, no existe.

Abu Bakr
fuente
1
Intente reformular su pregunta agregando más detalles: qué imagen está utilizando, cómo instancia su contenedor (y si esos términos no significan mucho para usted, consulte la documentación de Docker ). Si es posible, indique e indique qué Dockerfile está utilizando, según la imagen.
deucalion
No existe nada como dockerrestringir la yuminstalación de algunos paquetes o archivos.
Principiante

Respuestas:

7

Descubrí por qué los documentos no están instalados: no es una característica de Docker sino de la imagen de CentOS Docker. Las configuraciones de Yum y rpm contienen opciones que impiden la instalación. Pueden deshabilitarse agregando las siguientes líneas al Dockerfile:

RUN sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate
RUN sed -i '/nodocs/d' /etc/yum.conf
Abu Bakr
fuente
¡Guauu! Me ahorraste muchos problemas y tiempo. Tuve exactamente el mismo problema en Ubuntu. En mi caso, el .debpaquete tenía múltiples archivos de configuración de muestra en el /usr/share/doc/package-name/examplesdirectorio (que necesitaba), ¡pero por razones desconocidas se instalaron! Resultó que la imagen de Ubuntu acoplable tiene /etc/dpkg/dpkg.cfg.d/excludesfichero que explícitamente excluye /usr/share/man/* , /usr/share/doc/*, /usr/share/doc/*/copyright, /usr/share/doc/*/changelog.Debian.*.
patryk.beza