Skip to content
Alejandro Guerrero edited this page Jan 12, 2019 · 6 revisions

Manual para el uso de Docker en los diferentes ámbitos del sistema. El uso de este es voluntario, pero facilita siempre las tareas relacionadas con la infraestructura.

Desarrollo

En este caso se utiliza Docker para hacer el despliegue de la base de datos, sin necesidad instalar Postgres en la máquina ni realizar ninguna configuración adicional. Para ello desde la consola, nos dirigimos al directorio donde se encuentra la carpeta de Docker de desarrollo (/docker/desarrollo)

E introducimos el siguiente comando:

docker-compose up -d

(El parametro -d se utiliza para que el despliegue no se quede vinculado a la consola donde se ejecuta el comando) Una vez se complete la base de datos estará desplegada y se podrá acceder a ella desde el puerto 5432, tal como esta configurado en el sistema.

En caso de querer parar la base de datos se utiliza el comando:

docker-compose down

Preproducción

Antes de realizar el despliegue completo en producción, o para comprobar como funcionarían los cambios en el sistema final, debe desplegarse en preproducción, para poder comprobar que todo el despliegue se realiza de forma correcta y todo funciona tal cual esperado, sin afectar en caso de error al sistema desplegado. Para ello se ha preparado una configuración de Docker separada. Primero, para enviar todos los cambios realizados en el proyecto, debe compilarse el mediante:

(Antes de realizar esto deben realizarse todas las configuraciones correspondientes al servidor, que se encuentran en la carpeta /docker/preproduccion )

docker build -f docker/Dockerfile . --tag alexgue/decide-locaste-web (Este comando debe ejecutarse desde la carpeta raiz del proyecto)

Esto compilará la imagen de docker, ahora debemos subirla al repositorio mediante:

docker push alexgue/decide-locaste-web

Una vez realizado esto la imagen se subirá a DockerHub y podrá ser descargada desde cualquier servidor. (Esto es lo que realizara nuestro docker-compose)

Desde el servidor donde queramos hacer el despliegue deberemos utilizar el archivo docker-compose que se encuentra en la misma carpeta. Podemos descargarnos este archivo de la forma que deseemos, la más comoda puede ser:

wget https://raw.githubusercontent.com/EGC-Decide/locaste/master/docker/preproduction/docker-compose.yml

Una vez tengamos el archivo utilizamos el comando docker-compose up -d

Una vez finalizado el despliegue, el sistema se encontrara en funcionamiento en el puerto 9000 del servidor, por ejemplo: http://localhost:9000

Producción

El despliegue en producción mediante Docker del sistema debe seguir los mismos pasos que el sistema en preproducción, pero a diferencia de este, el sistema se desplegara automáticamente en el puerto 80. Por lo tanto la ruta para acceder sera la de por defecto. Por ejemplo: http://localhost

Ejecución de comandos en los contenedores

Para determinadas tareas, es necesario el uso de comandos en los servidores, para ello se puede realizar con el siguiente comando:

docker exec -it decide_web /bin/sh

Una vez aquí podremos realizar los comandos que necesitemos, por ejemplo, para crear el superusuario se realizaría:

python manage.py createsuperuser

Usuario

Contraseña