Empieza a desarrollar con Docker¶
Cómo ejecutar la instancia para el desarrollo¶
Hay dos opciones para desarrollar utilizando contenedores Docker:
Alternativa A: Ejecutar desde la línea de comandos y editar el código usando su editor preferido (generalmente más difícil).
Alternativa B: Usar la extensión vscode contenedores remotos (más fácil).
Alternativa A: Construir y ejecutar Docker para el desarrollo¶
Construir (primera vez solamente):
docker-compose --project-name geonode -f docker-compose-dev.yml -f .devcontainer/docker-compose.yml build
Correr:
docker-compose --project-name geonode -f docker-compose-dev.yml -f .devcontainer/docker-compose.yml up
Nota
Si está ejecutando los servicios postgresql y tomcat9, debe detenerlos, docker-compose se encargará de ejecutar la base de datos y el servicio geonode.
De lo contrario, obtendrás el siguiente error:
ERROR: for db Cannot start service db: driver failed programming external connectivity on endpoint db4geonode: Error starting userland proxy: listen tcp4 0.0.0.0:5432: bind: address already in use
ERROR: Encountered errors while bringing up the project.
Ejecutar la aplicación geonode en modo de depuración:
docker exec -it django4geonode bash -c "python manage.py runserver 0.0.0.0:8000"
Al ejecutar la aplicación, puedes depurarla utilizando el método que prefieras. Por ejemplo, puedes editar un archivo, guardarlo y ver las modificaciones. También puedes utilizar ipdb para agregar puntos de interrupción e inspeccionar su código (escribiendo import ipdb; ipdb.set_trace() en la línea donde desea colocar el punto de interrupción).
Otra opción es usar debugpy junto con vscode, para esto debes habilitar debugpy dentro de tu contenedor django4geonode:
docker exec -it django4geonode bash -c "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 manage.py runserver 0.0.0.0:8000 --nothreading --noreload"
Selecciona «Ejecutar y depurar» en vscode y usa la siguiente instrucción de inicio en su archivo .vscode/launch.json:
Alternativa B: Usar la extensión vscode¶
Como alternativa, puedes desarrollar usando la extensión remote contenedores de vscode. En este enfoque, debes:
Instala la extensión en tu vscode: ms-vscode-remote.remote-containers
En su paleta de comandos, selecciona: «Contenedores remotos: Reabrir en contenedor»
Si es la primera vez, vscode se encargará de generar las imágenes. Esto puede llevar algún tiempo.
Luego se abrirá una nueva ventana de vscode y se conectará a su contenedor Docker.
El mensaje «Dev Container: Debug Docker Compose» aparecerá en la esquina inferior izquierda de esa ventana.
En la terminal vscode, verás algo similar a
root@77e80acc89b8:/usr/src/geonode#.Para ejecutar tu aplicación, puedes utilizar la terminal integrada (
./manage.py runserver 0.0.0.0:8000) o la opción «Ejecutar y depurar» de vscode. Para ejecutar con «Ejecutar y depurar», utiliza el siguiente archivo de instrucciones:
Para obtener más información, lee la página de ayuda de contenedores remotos de vscode https://code.visualstudio.com/docs/remote/containers.