cambio docker 2

This commit is contained in:
Francisco Jesús Martínez Mimbrera
2026-06-05 18:19:37 +02:00
parent 7fcf0486ff
commit ff3b1c5389
+83
View File
@@ -12,6 +12,7 @@
- [Arquitectura del Proyecto](#arquitectura-del-proyecto) - [Arquitectura del Proyecto](#arquitectura-del-proyecto)
- [Requisitos del Sistema](#requisitos-del-sistema) - [Requisitos del Sistema](#requisitos-del-sistema)
- [Instalación y Construcción](#instalación-y-construcción) - [Instalación y Construcción](#instalación-y-construcción)
- [Ejecución con Docker](#ejecución-con-docker)
- [Estructura del Proyecto](#estructura-del-proyecto) - [Estructura del Proyecto](#estructura-del-proyecto)
- [Módulos y Plugins](#módulos-y-plugins) - [Módulos y Plugins](#módulos-y-plugins)
- [Modelos de Consenso Implementados](#modelos-de-consenso-implementados) - [Modelos de Consenso Implementados](#modelos-de-consenso-implementados)
@@ -208,6 +209,85 @@ Los artefactos de construcción se generan en `releng/afryca.application.product
--- ---
## Ejecución con Docker
AFRYCA puede ejecutarse en un contenedor Docker sin necesidad de instalar Java ni dependencias GTK en el sistema anfitrión. La aplicación se sirve mediante **TigerVNC + noVNC**, accesible desde cualquier navegador web.
### Requisitos
- [Docker](https://www.docker.com/get-started) con Docker Compose (v2+)
- El proyecto debe estar previamente compilado (`mvn clean install`)
### Arranque rápido
**1. Dar permiso de ejecución al lanzador** (solo la primera vez tras compilar):
```bash
chmod +x releng/afryca.application.product/target/products/afryca/linux/gtk/x86_64/afryca
```
**2. Construir la imagen:**
```bash
docker compose build
```
**3. Levantar el contenedor:**
```bash
docker compose up -d
```
**4. Abrir en el navegador:**
```
http://localhost:6080/vnc.html?autoconnect=true&resize=scale
```
No se requiere contraseña. La interfaz escala automáticamente al tamaño de la ventana del navegador.
### Parar y limpiar
```bash
# Parar el contenedor
docker compose down
# Parar y eliminar el workspace persistente
docker compose down -v
```
### Arquitectura del contenedor
```
┌──────────────────────────────────────────────────────────────┐
│ Docker (linux/amd64 via Rosetta en Apple Silicon) │
│ │
│ TigerVNC (Xvnc :1) ←─────────────────────────────────┐ │
│ │ │ │
│ Openbox (window manager) │ │
│ │ │ │
│ AFRYCA (GTK3 + SWT) ──── renderiza en display :1 ─────┘ │
│ │
│ websockify + noVNC ──── http://localhost:6080 ─────────────────▶ Navegador
└──────────────────────────────────────────────────────────────┘
```
**TigerVNC** integra en un único proceso el servidor X11 y el servidor VNC, lo que ofrece mejor rendimiento que la alternativa Xvfb + x11vnc.
### Archivos Docker
| Archivo | Descripción |
|---------|-------------|
| `Dockerfile.run` | Imagen de ejecución (eclipse-temurin:11 + GTK + TigerVNC + noVNC) |
| `entrypoint.sh` | Arranca Xvnc, Openbox, noVNC y lanza AFRYCA |
| `docker-compose.yml` | Orquestación: monta el build Linux x86_64 como volumen |
### Nota sobre Apple Silicon (M1/M2/M3)
En Mac con procesador ARM, Docker ejecuta la imagen `linux/amd64` mediante emulación Rosetta. La aplicación funciona correctamente, aunque con algo más de latencia que en hardware x86 nativo.
---
## Estructura del Proyecto ## Estructura del Proyecto
``` ```
@@ -241,6 +321,9 @@ afryca-master/
│ └── 3.0 - Cameroon/ # Tema versión 3.0 (actual) │ └── 3.0 - Cameroon/ # Tema versión 3.0 (actual)
├── workspace/ # Workspace Eclipse de trabajo ├── workspace/ # Workspace Eclipse de trabajo
├── Dockerfile.run # Imagen Docker de ejecución
├── entrypoint.sh # Script de arranque del contenedor
├── docker-compose.yml # Orquestación Docker
├── pom.xml # POM raíz Maven ├── pom.xml # POM raíz Maven
├── build.bat # Script de construcción (Windows) ├── build.bat # Script de construcción (Windows)
└── clean.bat # Script de limpieza (Windows) └── clean.bat # Script de limpieza (Windows)