Grup4 - 21. classVRroom. Dockerització del projecte Django.
Una vez hecho el Fork del proyecto ClassVRroom del grupo 2 de AWS2, vamos a proceder a dockerizarlo, para ello hemos creado un Dockerfile el cual podemos ver en la parte inferior, como podemos ver exponemos el puerto 8000.
LO HACEMOS CON DB.SQLITE, NORMALMENTE SE UTILIZA PARA TESTEAR, PERO COMO LOS DESARROLLADORES HAN CONFIGURADO EL SETTINGS DE MANERA QUE SEA CON db.sqlite3 VAMOS A DEJARLO IGUAL Y NO LO HAREMOS CON MYSQL.
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 # install app libs COPY requirements.txt requirements.txt RUN pip3 install --no-cache-dir -r requirements.txt #copy directory principal COPY lms /lms # establish workdir WORKDIR /lms EXPOSE 8000 # runs the development server ENTRYPOINT ["python3","manage.py"] CMD ["runserver","0.0.0.0:8000"]
También hemos creado un docker-compose.yml, en el cual establecemos la configuración de la DB y de la página, adjuntamos el contenido del documento a continuación
Docker-compose
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:/lms/db.sqlite3 volumes: db.sqlite3:
Una vez puesta en marcha el docker:
./manage.py migrate ./manage.py initvroom ./manage.py createsuperuser
Finalmente como podemos ver en la imagen inferior hemos conseguido Dockerizar y poner en funcionamiento el Docker con la aplicación