Puesta en producción classVRroom dockeritzat

De Wiket
Salta a la navegació Salta a la cerca

En este punto, explicaremos a como poner en producción la página web classVRroom realizada por los chic@s de DAW a partir del software Docker. Como ya hicimos con la puesta en producción del WordPress de higiene postural, haremos uso nuevamente de nuestro fichero docker-compose.yml para indicarle el servicio que queremos utilizar y que lo automatice con su respectivo dominio/subdominio y fucnione a partir del protocolo HTTPS.

Zanjado esto, lo primero que deberemos hacer será realizar un fork al repositorio de GitHub de los chic@s de DAW para copiar su proyecto y posteriormente poder clonarlo en nuestro sistema:


Fork a un repositorio GitHub


















Seguidamente, nos deberemos dirigir a nuestro sistema y realizar una clonación al repositorio que nos habrá aparecido una vez hayamos el fork. Para ello, solamente deberemos ejecutar el siguiente comando:

  sudo git clone <enlace de nuestro repositorio>


Git Clone 2.png






Una vez tengamos clonado la web de los chic@s de DAW en nuestro sistema con éxito, procederemos a realizar un Dockerfile y un script .sh para automatizar la ejecución de dicho servicio. En nuestro caso, en ambos archivos ejecutaremos comandos que quizá a vosotros no os valgan para la inicialización de este servicio, ya que, cada grupo DAW tendrá su web distribuida de diferente manera y quizá con otras dependencias. Dicho esto, mostraremos a continuación nuestro Dockerfile y script .sh para conseguir la inicialización de dicho servicio una vez iniciemos nuestro docker-compose.yml:


Dockerfile

# Utilizamos una imagen oficial de Docker de Python
FROM python:3.10-slim

# Cambiamos el tipo de shell por defecto /bin/sh por /bin/bash
SHELL ["/bin/bash", "-c"]

# Instalamos las dependencias necesarias
RUN apt-get update && apt-get install python3-pip python3-venv default-mysql-client libmariadb-dev libmariadb-dev-compat gcc gdal-bin libjpeg-dev gcc python3-dev python3-mysqldb libpq-dev python-dev -y

# Creamos un entorno virtual
RUN python3 -m venv env_classVRroom

# Copiamos todo el contenido de la aplicacion al directorio /opt e instalamos las aplicaciones necesarias
# con el requirements dentro de nuestro entorno virtual
COPY . /opt
RUN source env_classVRroom/bin/activate
RUN pip3 install --no-cache-dir -r /opt/requirements.txt

# Exponemos la aplicacion en el puerto 80
EXPOSE 80

# Le proporcionamos a nuestro script encargado de mgirar los datos de db permisos de ejecucion para poder 
# ejecutarlo. Y finalmente, ejecutamos dicho script 
RUN chmod +x /opt/iniciarClassvroom.sh
ENTRYPOINT ["/opt/iniciarClassvroom.sh"]


iniciarClassVRroom.sh

#!/bin/bash

# Create superuser
# echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('userUsername', 'userEmail', 'userPassword')" | python manage.py shell
python3 creategroup

#Run migrate to create database
python3 /opt/manage.py makemigrations
python3 /opt/manage.py migrate


#Run initialization script (provided by DAW developers)
python3 /opt/manage.py initvroom

#Run the server on port 80
python3 /opt/manage.py runserver 0.0.0.0:80








Volver a IETI Cloud Grupo 2