cambio docker 2
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
- [Arquitectura del Proyecto](#arquitectura-del-proyecto)
|
||||
- [Requisitos del Sistema](#requisitos-del-sistema)
|
||||
- [Instalación y Construcción](#instalación-y-construcción)
|
||||
- [Ejecución con Docker](#ejecución-con-docker)
|
||||
- [Estructura del Proyecto](#estructura-del-proyecto)
|
||||
- [Módulos y Plugins](#módulos-y-plugins)
|
||||
- [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
|
||||
|
||||
```
|
||||
@@ -241,6 +321,9 @@ afryca-master/
|
||||
│ └── 3.0 - Cameroon/ # Tema versión 3.0 (actual)
|
||||
│
|
||||
├── 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
|
||||
├── build.bat # Script de construcción (Windows)
|
||||
└── clean.bat # Script de limpieza (Windows)
|
||||
|
||||
Reference in New Issue
Block a user