21. classVRroom. Dockerització del projecte Django. - Grupo 6

De Wiket
Salta a la navegació Salta a la cerca

Despues de realizar el fork del proyecto de los compañeros de DAM-DAW deberemos de hacer un git clone a nuestra maquina para poder trabajar sobre este proyecto.

git clone https://github.com/AlejandroMengual333/ClassVRoom

Acto seguido procederemos a crear los "Dockers" necesarios para poder dockeritzar esta app.

Dockerfile

# We Use an official Python runtime as a parent image
FROM python:3.8-slim

# install db libs
RUN apt-get update
RUN apt-get install -y default-mysql-client libmariadb-dev
RUN apt-get install -y libmariadb-dev-compat gcc gdal-bin libjpeg-dev
RUN apt-get install -y gcc python3-dev python3-mysqldb
RUN apt-get install -y libpq-dev python-dev python3-venv
# install app libs
COPY requirements.txt requirements.txt
RUN pip3 install --no-cache-dir -r requirements.txt
# Mounts the application code to the image
COPY . code

# establish workdir
WORKDIR /code

EXPOSE 8000

# runs the development server
ENTRYPOINT ["python3", "manage.py"]
CMD ["creategroups.py"]
CMD ["runserver","0.0.0.0:8000"]

Docker-compose.yml

  GNU nano 4.8                                       docker-compose.yml                                                 version: '3.1'

services:

  django_app:
    build: .
    restart: always
    ports:
      - 8000:8000
    environment:
      - DATABASE_URL=sqlite:///db.sqlite3
      - DEBUG=False
      - SECRET_KEY=asecretkeyblabla
    volumes:
      - ./db.sqlite3:/code/db.sqlite3

Otras acciones

Poner en marcha el docker.

sudo docker-compose up -d --build

Tendremos que crear tambien un "Superuser" para poder acceder a la base de datos.

./manage.py createsuperuser

Para añadir grupos y usuarios:


azureuser@VMRoom:~/ClassVRoom/classroomvr/management/commands$ sudo docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS          PORTS                                       NAMES
2edf4184d570   classvroom_django_app   "python3 manage.py r…"   11 minutes ago   Up 11 minutes   0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   classvroom_django_app_1

Deberemos localizar el ID del container, entrar a este container y ejecutar el archivo que nos han facilitado para la creacion de grupos y usuarios.

azureuser@VMRoom:~/ClassVRoom/classroomvr/management/commands$ sudo docker exec -ti 2ed bash
root@2edf4184d570:/code# ./manage.py creategroups
root@2edf4184d570:/code# ./manage.py migrate

FALLOS

Una vez realizado todo esto correctamente, nos dimos cuenta que no podiamos acceder a la pagina, a los compañeros de DAM-DAW les faltó añadir una linea en su codigo en "settings,py".

# activem Django-Heroku al final de l'arxiu
django_heroku.settings(locals())
 
# si dona error ssl https://devcenter.heroku.com/articles/getting-started-with-python#set-up
del DATABASES['default']['OPTIONS']['sslmode']