Iniciar un proyecto en Django con Docker

19 April 2016 · 3 min lectura

Introducción

Pasos para iniciar un proyecto con Django utilizando Docker dentro del flujo de trabajo. Se utiliza projectname para hacer referencia al nombre del proyecto.

Pre requisito

  • Tener instalado Docker. Si está utilizando Mac OS X o Windows instale Docker Toolbox.

Código fuente

Puede descargar el código fuente utilizado en este artículo.

Diagramas UML

Puede consultar los diagramas de despliegue en este enlace.

Paso Uno – Establecer Estructura.

Descargar estructura del proyecto

Se descarga el proyecto que contiene la estructura general.

git clone https://github.com/mmorejon/docker-django.git projectname

Eliminar carpeta de Git

La carpeta .git se elimina para crear un nuevo repositorio.

cd projectname
rm -rf .git/

Crear nuevo repositorio dentro del proyecto

Se inicia el control de versiones dentro de la carpeta del proyecto para registrar los cambios.

git init

Paso Dos - Crear Imagen de Docker

Crear Imagen en Docker

Se crea la imagen de Docker para el proyecto. La imagen va a contener la instalación de los requerimientos establecidos en el fichero requirements.txt.

El fichero requirements.txt contiene los requisitos básicos para el inicio y despliegue de una aplicación con Django, si necesita adicionarle nuevos elementos este es un buen momento.

docker build -t projectname:1.0 .

Siempre que modifique los elementos dentro del fichero requirements.txt tiene que repetir este paso.

Configurar Docker Compose

En el fichero docker-compose.yml se modifica el nombre de la imagen que será utilizada. El nombre de la imagen se ha establecido en el paso anterior. La zona que se modifica dentro del fichero es la siguiente:

image: projectname:1.0

Paso Tres - Crear Proyecto Django

Crear Proyecto

Se crea el proyecto utilizando los mismos comandos descritos por el sitio Django.

docker-compose run web django-admin startproject projectname .

Probar el sistema

Para probar si el sistema está funcionando correctamente se ejectua el siguiente comando. En el navegador se puede revisar la aplicación en la siguiente dirección http://<ip-máquina:8000>. El puerto de salida puede ser configurado en el fichero docker-compose.yml.

docker-compose up

Para el sistema

Se detiene el sistema de ser necesario para continuar con las configuraciones.

Ctrl-C

Paso Cuatro - Crear Aplicación

Para crear una aplicación dentro del proyecto Django se utiliza el siguiente comando:

docker-compose run web python manage.py startapp app

Paso Cinco - Crear Usuario

Los usuarios se crean utilizando el mismo comando descrito en la documentación de Django.

docker-compose run web python manage.py createsuperuser

Paso Seis - Entorno de Producción

Para utilizar la aplicación en el entorno de producción se debe configurar los siguientes ficheros:

Adicionar al final del fichero projectname/settings.py la siguiente línea:

STATIC_ROOT = './static/'

Adicionar la línea command: ./run-production.sh al fichero docker-compose.yml quedando de la siguiente forma:

web:
  image: projectname:1.0
  command: ./run-production.sh
  volumes:
    - .:/code
  ports:
    - "8000:80"

Para finalizar debe modificar el nombre del proyecto projectname en el fichero conf/app.ini.

Revisiones significativas

comments powered by Disqus