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.
docker
restringir layum
instalación de algunos paquetes o archivos.Respuestas:
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:
fuente
.deb
paquete tenía múltiples archivos de configuración de muestra en el/usr/share/doc/package-name/examples
directorio (que necesitaba), ¡pero por razones desconocidas se instalaron! Resultó que la imagen de Ubuntu acoplable tiene/etc/dpkg/dpkg.cfg.d/excludes
fichero que explícitamente excluye/usr/share/man/*
,/usr/share/doc/*
,/usr/share/doc/*/copyright
,/usr/share/doc/*/changelog.Debian.*
.