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:
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.