Esta página describe los procedimientos de instalación de Fess utilizando Docker y Docker Compose. Usar Docker permite construir un entorno Fess de manera fácil y rápida.
Requisitos Previos
Cumplir con los requisitos del sistema descritos en Requisitos del Sistema
Docker 20.10 o posterior instalado
Docker Compose 2.0 o posterior instalado
Verificación de la Instalación de Docker
Verifique las versiones de Docker y Docker Compose con los siguientes comandos.
$ docker --version
$ docker compose version
Nota
Si está usando una versión antigua de Docker Compose, use el comando docker-compose. Este documento utiliza el nuevo formato de comando docker compose.
Acerca de las Imágenes Docker
La imagen Docker de Fess está compuesta por los siguientes componentes:
Fess: Cuerpo del sistema de búsqueda de texto completo
OpenSearch: Motor de búsqueda
La imagen Docker oficial está publicada en Docker Hub.
Paso 1: Obtención del Archivo Docker Compose
Se requieren los siguientes archivos para iniciar con Docker Compose.
Método 1: Descargar Archivos Individualmente
Descargue los siguientes archivos:
$ mkdir fess-docker
$ cd fess-docker
$ wget https://raw.githubusercontent.com/codelibs/docker-fess/v15.3.2/compose/compose.yaml
$ wget https://raw.githubusercontent.com/codelibs/docker-fess/v15.3.2/compose/compose-opensearch3.yaml
Método 2: Clonar el Repositorio con Git
Si Git está instalado, también puede clonar todo el repositorio:
$ git clone --depth 1 --branch v15.3.2 https://github.com/codelibs/docker-fess.git
$ cd docker-fess/compose
Paso 2: Verificación del Archivo Docker Compose
Contenido de compose.yaml
compose.yaml contiene la configuración básica de Fess.
Elementos de configuración principales:
Número de puerto: Puerto de la interfaz Web de Fess (predeterminado: 8080)
Variables de entorno: Configuración como el tamaño del heap de Java
Volumen: Configuración de persistencia de datos
Contenido de compose-opensearch3.yaml
compose-opensearch3.yaml contiene la configuración de OpenSearch.
Elementos de configuración principales:
Versión de OpenSearch: Versión de OpenSearch a utilizar
Configuración de memoria: Tamaño del heap de JVM
Volumen: Configuración de persistencia de datos de índice
Personalización de la Configuración (Opcional)
Si desea cambiar la configuración predeterminada, edite compose.yaml.
Ejemplo: Cambiar el número de puerto:
services:
fess:
ports:
- "9080:8080" # Mapear al puerto 9080 del host
Ejemplo: Cambiar la configuración de memoria:
services:
fess:
environment:
- "FESS_HEAP_SIZE=2g" # Establecer el tamaño del heap de Fess en 2GB
Paso 3: Inicio del Contenedor Docker
Inicio Básico
Inicie Fess y OpenSearch con el siguiente comando:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml up -d
Nota
Especifique múltiples archivos Compose con la opción
-fEjecute en segundo plano con la opción
-d
Verificación de registros de inicio:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml logs -f
Puede salir de la visualización de registros con Ctrl+C.
Verificación del Inicio
Verifique el estado de los contenedores:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml ps
Verifique que los siguientes contenedores estén en ejecución:
fessopensearch
Truco
El inicio puede tardar varios minutos. Espere hasta que aparezca un mensaje como «Fess is ready» o similar en el registro.
Persistencia de Datos
Los volúmenes se crean automáticamente para conservar los datos incluso si se eliminan los contenedores Docker.
Verificación de volúmenes:
$ docker volume ls
Volúmenes relacionados con Fess:
fess-es-data: Datos de índice de OpenSearchfess-data: Datos de configuración de Fess
Importante
Los volúmenes no se eliminan incluso si se eliminan los contenedores. Para eliminar volúmenes, debe ejecutar explícitamente el comando docker volume rm.
Detención del Contenedor Docker
Para detener contenedores:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml stop
Para detener y eliminar contenedores:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml down
Advertencia
El comando down elimina contenedores pero no volúmenes. Agregue la opción -v si también desea eliminar volúmenes:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml down -v
Precaución: Ejecutar este comando eliminará todos los datos.
Configuración Avanzada
Personalización de Variables de Entorno
Es posible realizar configuraciones detalladas agregando o modificando variables de entorno en compose.yaml.
Variables de entorno principales:
| Variable de Entorno | Descripción |
|---|---|
FESS_HEAP_SIZE | Tamaño del heap de JVM de Fess (predeterminado: 1g) |
SEARCH_ENGINE_HTTP_URL | Punto final HTTP de OpenSearch |
TZ | Zona horaria (ejemplo: Asia/Tokyo) |
Ejemplo:
environment:
- "FESS_HEAP_SIZE=4g"
- "TZ=Asia/Tokyo"
Cómo Aplicar Archivos de Configuración
Las configuraciones detalladas de Fess se escriben en el archivo fess_config.properties. En entornos Docker, existen los siguientes métodos para aplicar estas configuraciones de archivo.
Método 1: Montar Archivos de Configuración
Al montar un directorio que contiene fess_config.properties y otros archivos de configuración, puede aplicar configuraciones editadas en el lado del host al contenedor.
Cree un directorio de configuración en el host:
$ mkdir -p /path/to/fess-config
Obtenga la plantilla del archivo de configuración (solo la primera vez):
$ curl -o /path/to/fess-config/fess_config.properties https://raw.githubusercontent.com/codelibs/fess/refs/tags/fess-15.3.2/src/main/resources/fess_config.properties
Edite
/path/to/fess-config/fess_config.propertiesy agregue las configuraciones necesarias:# Ejemplo crawler.document.cache.enabled=false adaptive.load.control=20 query.facet.fields=label,host
Agregue el montaje de volumen a
compose.yaml:services: fess: volumes: - /path/to/fess-config:/opt/fess/app/WEB-INF/conf
Inicie el contenedor:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml up -d
Nota
fess_config.properties contiene configuraciones de búsqueda, configuraciones del rastreador, configuraciones de correo electrónico y otras configuraciones del sistema. Aunque elimine los contenedores con docker compose down, los archivos en el lado del host se conservan.
Método 2: Configuración mediante Propiedades del Sistema
Puede sobrescribir elementos de configuración en fess_config.properties mediante variables de entorno usando propiedades del sistema.
Los elementos de configuración escritos en fess_config.properties (por ejemplo, crawler.document.cache.enabled=false) se pueden especificar en el formato -Dfess.config.nombre_configuración=valor.
Agregue FESS_JAVA_OPTS a las variables de entorno en compose.yaml:
services:
fess:
environment:
- "FESS_JAVA_OPTS=-Dfess.config.crawler.document.cache.enabled=false -Dfess.config.adaptive.load.control=20 -Dfess.config.query.facet.fields=label,host"
Nota
La parte que sigue a -Dfess.config. corresponde al nombre del elemento de configuración en fess_config.properties.
Conexión a OpenSearch Externo
Si desea usar un clúster de OpenSearch existente, edite compose.yaml para cambiar el destino de conexión.
No use
compose-opensearch3.yaml:$ docker compose -f compose.yaml up -d
Configure
SEARCH_ENGINE_HTTP_URL:environment: - "SEARCH_ENGINE_HTTP_URL=http://your-opensearch-host:9200"
Configuración de Red Docker
Si se integra con múltiples servicios, puede usar una red personalizada.
Ejemplo:
networks:
fess-network:
driver: bridge
services:
fess:
networks:
- fess-network
Operación en Producción con Docker Compose
Configuraciones recomendadas al usar Docker Compose en entornos de producción:
Configuración de límites de recursos:
deploy: resources: limits: cpus: '2.0' memory: 4G reservations: cpus: '1.0' memory: 2G
Configuración de política de reinicio:
restart: unless-stopped
Configuración de registros:
logging: driver: "json-file" options: max-size: "10m" max-file: "3"
Habilitación de configuración de seguridad
Habilite el plugin de seguridad de OpenSearch y configure la autenticación apropiada. Para más detalles, consulte Configuración de Seguridad.
Solución de Problemas
Los Contenedores no Inician
Verificar registros:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml logs
Verificar conflictos de puertos:
$ sudo netstat -tuln | grep 8080 $ sudo netstat -tuln | grep 9200
Verificar espacio en disco:
$ df -h
Errores de Memoria Insuficiente
Si OpenSearch no inicia por falta de memoria, es necesario aumentar vm.max_map_count.
En Linux:
$ sudo sysctl -w vm.max_map_count=262144
Para configurar permanentemente:
$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
Inicialización de Datos
Para eliminar todos los datos y volver al estado inicial:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml down -v
$ docker volume prune
Advertencia
Ejecutar este comando eliminará todos los datos completamente.
Próximos Pasos
Después de completar la instalación, consulte la siguiente documentación:
Inicio, Detención y Configuración Inicial - Inicio de Fess y configuración inicial
Configuración de Seguridad - Configuración de seguridad para entornos de producción
Solución de Problemas - Solución de problemas
Preguntas Frecuentes
P: ¿Cuál es el tamaño de las imágenes Docker?
R: La imagen de Fess es de aproximadamente 1GB, y la imagen de OpenSearch es de aproximadamente 800MB. La primera vez que se inicia, puede tardar tiempo en descargar.
P: ¿Es posible operar en Kubernetes?
R: Sí, es posible. Convirtiendo el archivo Docker Compose en manifiestos de Kubernetes o usando Helm charts, es posible operar en Kubernetes. Para más detalles, consulte la documentación oficial de Fess.
P: ¿Cómo se actualizan los contenedores?
R: Actualice siguiendo estos pasos:
Obtenga los archivos Compose más recientes
Detenga los contenedores:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml down
Obtenga nuevas imágenes:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml pull
Inicie los contenedores:
$ docker compose -f compose.yaml -f compose-opensearch3.yaml up -d
P: ¿Es posible una configuración de múltiples nodos?
R: Sí, es posible. Editando compose-opensearch3.yaml y definiendo múltiples nodos de OpenSearch, puede configurar un clúster. Sin embargo, para entornos de producción se recomienda usar herramientas de orquestación como Kubernetes.