🚧PRACTICA: Creando una web de emulación de juegos con docker-compose
Objetivos:
Desplegar el servicio online para todos
¿se puede hacer un proxy para cada plataforma? -> necesitamos varios servicios a la vez?
Plataforma PS1
Plataforma NES
Modificar el index.html a un estilo propio
Todo con docker-compose
Pasos para montar un servidor de EmulatorJS con Docker Compose
Prepara los archivos necesarios:
Descarga el paquete de EmulatorJS o clona el repositorio desde https://github.com/ethanaobrien/emulatorjs.
Crea un directorio para tus ROMs (por ejemplo,
roms/
) y colócalos allí.Asegúrate de que tienes Docker y Docker Compose instalados.
Crea un
Dockerfile
para EmulatorJS: Crea un archivoDockerfile
para alojar los archivos del servidor web:FROM nginx:alpine # Copia los archivos de EmulatorJS al directorio del servidor web COPY ./emulatorjs /usr/share/nginx/html # Expone el puerto del servidor EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Este archivo usa NGINX como servidor web para alojar EmulatorJS.
Copia los archivos del proyecto EmulatorJS al directorio donde NGINX los puede servir (
/usr/share/nginx/html
).
Estructura del proyecto: Asegúrate de que la estructura del proyecto sea similar a esta:
emulatorjs-docker/ ├── Dockerfile ├── docker-compose.yml ├── emulatorjs/ # Archivos de EmulatorJS │ ├── index.html │ ├── ... ├── roms/ # Carpeta para tus ROMs │ ├── game1.nes │ ├── game2.snes
Crea un archivo
docker-compose.yml
: Aquí está un ejemplo de archivodocker-compose.yml
para configurar el servidor EmulatorJS:version: '3.8' services: emulatorjs: build: context: . dockerfile: Dockerfile container_name: emulatorjs-server ports: - "8080:80" # Mapea el puerto 8080 del host al puerto 80 del contenedor volumes: - ./roms:/usr/share/nginx/html/roms # Monta la carpeta de ROMs restart: always
build:
: Especifica que se debe construir la imagen Docker desde el Dockerfile.ports:
: El puerto8080
en tu máquina local se conecta al puerto80
del contenedor.volumes:
: Monta la carpeta local de ROMs (./roms
) en el contenedor para que los juegos sean accesibles.
Construye y ejecuta los contenedores:
Navega al directorio donde está tu archivo
docker-compose.yml
.Construye y levanta el servidor con los siguientes comandos:
docker-compose up -d
Esto construirá la imagen, iniciará el contenedor, y montará el servidor en
http://localhost:8080
.
Accede al servidor EmulatorJS:
Abre un navegador web e ingresa
http://localhost:8080
.La interfaz de EmulatorJS debería cargarse.
Los ROMs estarán disponibles en la carpeta
/roms
. Si EmulatorJS no detecta automáticamente los juegos, edita los archivos de configuración (games.js
oindex.html
) para que apunten a tus ROMs.
Referencias:
Última actualización