Servicio de Chat en Docker
Presentación
El presente proyecto surge de estar iniciandome en el uso de Docker para el desarrollo de aplicaciones surgio la idea de armar un programa en Python que permitiera instalar en un contenedor un servidor de chat al cual se pudieran conectar otros contenedores para chatear entre si.
El siguiente video muestra el proyecto en funcionamiento con el servidor y tres clientes conectados:
Código
A continuacion coloco los distintos archivos que contiene el codigo necesario para el proyecto, sin perjuicio de ello al final hay un link para descargar un archivo comprimido que contiene todos las archivos y permite su rapita instalacion en docker con sólo descomprimimirlo y ejecutal el comando "docker compose up --build"
Estructura de archivos y directorios
Esta estructura y los programas insertos a continuacion se corresponden a un modelo con un servidor y dos clientes, en el ejemplo a descargar se agrego un tercer cliente
Para agregar clientes como se puede comprobar comparando este esquema con el contenido del archivo comprimido, sólo debe agregarse una nueva carpeta cliente_X> copinado la carpeta cliente1 con todo su contenido y modificar en los archivos que corresponda cliente1 por cliente_X
Despues debe modificarse el archivo docker-compose.yml agregando las lineas correspondientes al cliente_X con los mismos datos de cliente1 y modificando solo el nombre del cliente
Archivo: docker-compose.yml
Archivo: cliente1/client.py
Archivo: cliente1/Dockerfile
Archivo: cliente1/requirements.txt
Este archivo va vacio
Archivo: cliente2/client.py
Archivo: cliente2/Dockerfile
Archivo: cliente2/requirements.txt
Este archivo va vacio
Archivo: servidor/server.py
Archivo: servidor/Dockerfile
Archivo: servidor/requirements.txt
Este archivo va vacio
A continuacion se puede descargar un archivo comprimido que contiene los programas necesario para la instalacion del el servidor y tres clientes en un Docker:
Cabe destacar que para el funcionamiento de los clientes debido a las ventanas es necesario previo a arrancar el sistema configurar el acceso a la sesión de la pantalla X (sistema gráfico de Unix/Linux) mediante el comando: xhost +local:
Despues con el comando docker compose up --build ejecutado desde una terminal abierta en la carpeta que esta el archivo docker-compose.yml se montan las imagenes y se inicia el sistema.