- Docker y Docker Compose
- En Windows, Docker Desktop contiene ambos programas.
- En Linux, deben instalarse con apt-get. Además hay pasos adicionales.
- IDE de Python (por ejemplo, Pycharm Community o Pycharm Professional con la licencia de estudiante)
- Python 3.6 o superior
- IDE para Vue (Visual Studio Code es gratuito)
- Confirmar que Docker funcione (docker run hello-world debe mostrar el mensaje de éxito, y docker-compose --version debe imprimir una versión)
- Seleccionar o crear una carpeta raíz (por ejemplo, el escritorio, Descargas o la carpeta Home). En adelante, esta carpeta será llamada PREFIX (por ejemplo, /home/username/Desktop)
- Descargar el archivo docker-compose.yml y moverlo a PREFIX.
- Crear una carpeta llamada nginx en PREFIX.
- Descargar el archivo nginx.conf y moverlo a PREFIX/nginx.
- Crear una carpeta llamada projects en PREFIX.
- Clonar el repositorio del código en PREFIX (cd ; git clone https://github.com/IS-AgroSmart/AgroSmart-Web). La carpeta se llamará AgroSmart-Web por defecto.
- Renombrar AgroSmart-Web a app.
- (Opcional) Crear un virtualenv para Python.
- Instalar los paquetes indicados en requirements.txt (django, djangorestframework, python-decouple, requests). Se pueden instalar manualmente o ejecutar pip install -r requirements.txt.
- En este punto, PREFIX debe contener los siguientes archivos/carpetas:
- El archivo docker-compose.yml
- Una carpeta nginx con el archivo nginx.conf
- Una carpeta projects, vacía
- Una carpeta app con el código de la app de Django (core/, templates/, IngSoft1/, manage.py, etc) Y ADEMÁS una carpeta frontend con el código de la aplicación de Vue (HACK) Por ahora, ejecutar npm install en la carpeta PREFIX/app/frontend
- Abrir un terminal en la carpeta PREFIX
- Ejecutar PREFIX=. docker-compose up para iniciar los servidores de NodeODM (puerto 3000), Geoserver (puerto 8080), PostgreSQL (puerto 5432), Vue (puerto 8001) y Django (puerto 8000), además de Nginx.
- El servidor de Django se inicia con los demás cuando se ejecuta docker-compose. Por lo tanto, NO se debe ejecutar el servidor de Django desde Pycharm.
- (HACK) Ejecutar python manage.py migrate y python manage.py createsuperuser desde Pycharm. Estos cambios serán detectados por el servidor, pero solamente porque usa una base de datos SQLite y el archivo db.sqlite3 está compartido entre la computadora y el contenedor.
- En este punto, se puede visitar http://localhost:X (donde X es el puerto de uno de los servicios activos) para visitarlo. Además, el puerto 80 permite acceder a todos los servicios (http://localhost/nodeodm para NodeODM, http://localhost/geoserver para Geoserver, http://localhost/api, http://localhost/admin y http://localhost/static para Django, y http://localhost para la app de Vue).
- Para detener los servidores, presionar Ctrl+C en la consola que muestra los logs de Docker. Si algún servidor no se detiene, PREFIX=. docker-compose down fuerza la detención.