Diferència entre revisions de la pàgina «Puesta en producción classVRroom dockeritzat»

De Wiket
Salta a la navegació Salta a la cerca
Línia 64: Línia 64:
  
  
''' Dockerfile'''
+
'''Dockerfile'''
 
<syntaxhighlight lang="dockerfile">
 
<syntaxhighlight lang="dockerfile">
 
# Utilizamos una imagen oficial de Docker de Python
 
# Utilizamos una imagen oficial de Docker de Python
Línia 91: Línia 91:
 
RUN chmod +x /opt/iniciarClassvroom.sh
 
RUN chmod +x /opt/iniciarClassvroom.sh
 
ENTRYPOINT ["/opt/iniciarClassvroom.sh"]
 
ENTRYPOINT ["/opt/iniciarClassvroom.sh"]
 +
</syntaxhighlight>
  
  
</syntaxhighlight>
+
'''iniciarClassVRroom.sh'''
 +
<syntaxhighlight lang="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
  
 +
</syntaxhighlight>
  
  

Revisió del 16:36, 6 abr 2022

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