Comience a desarrollar con Docker

Cómo ejecutar la instancia para el desarrollo.

Hay dos opciones para desarrollar usando contenedores Docker:

  • Alternativa A: Ejecutar mediante línea de comando y editar el código usando su editor preferido (generalmente más difícil).

  • Alternativa B: Utilice la extensión vscode contenedores remotos (más fácil).

Alternativa A: compilar y ejecutar Docker para desarrollo

Construir (solo la primera vez):

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 de geonode.

De lo contrario, obtendrá 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.

Ejecutando la aplicación de geonode en modo de depuración:

docker exec -it django4geonode bash -c "python manage.py runserver 0.0.0.0:8000"

Cuando se ejecuta, puede depurar la aplicación utilizando su método preferido.Por ejemplo, puedes editar un archivo, guardarlo y ver sus modificaciones.También puede usar ipdb para agregar puntos de interrupción e inspeccionar su código (escribiendo import ipdb; ipdb.set_trace() en la línea donde desea su punto de interrupción).

Otra opción es usar debugpy junto con vscode, para esto tienes que 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"

Seleccione «Ejecutar y depurar» en vscode y use las siguientes instrucciones de inicio en su archivo .vscode/launch.json:

:descargar:`launch.json <datos/vscode_debugpy_launch.json>`

Alternativa B: Uso de la extensión vscode

Alternativamente, puede desarrollar utilizando la extensión vscode contenedores remotos.En este enfoque es necesario:

  • Instale la extensión en su vscode: ms-vscode-remote.remote-containers

  • En su paleta de comando, seleccione: «Contenedores remotos: Reabrir en contenedor»

  • Si es la primera vez, vscode se encargará de crear las imágenes.Esto podría llevar algún tiempo.

  • Luego se abrirá una nueva ventana de vscode y se conectará a su contenedor acoplable.

  • El mensaje «Dev Container: Debug Docker Compose» aparecerá en la esquina inferior izquierda de esa ventana.

  • En la terminal vscode, verá algo similar a root@77e80acc89b8:/usr/src/geonode#.

  • Para ejecutar su aplicación, puede usar la terminal integrada (./manage.py runserver 0.0.0.0:8000) o la opción vscode «Ejecutar y depurar».Para iniciar con «Ejecutar y depurar», utilice el siguiente archivo de instrucciones:

:descargar:`launch.json <datos/vscode_runserver_launch.json>`

Para obtener más información, lea la página de ayuda de contenedores remotos de vscode.