Creando un entorno local de Frappe con Docker

Resumen
Guía para levantar un entorno local de frappe framework y desarrollar en local las apps. En la guía se instala la version 13 de Frappe que es la última al día en el momento que se escribió esta guía, donde se mencione a version-13 reemplazar por la más nueva.
Prerequisitos
Para empezar con el desarrollo se necesitan los siguientes requisitos.
  • Docker
  • docker-compose
  • Visual Studio Code
  • Preparar contenedor para el desarrollo
    Clonar y entrar al directorio frappe_docker
    git clone https://github.com/frappe/frappe_docker.git
    cd frappe_docker
    Copiar la configuración ejemplo del devcontainer de la carpeta devcontainer-example a .devcontainer
    cp -R devcontainer-example .devcontainer
    Usar la extensión de VSCode Remote Containers
    Para un desarrollo más sencillo en Frappe Framework recomiendo el uso de VSCode Remote - Containers extension. Primero instalar esta extensión antes de empezar.
    Antes de abrir el contenedor, pueden cambiar la base de datos a usar en .devcontainer/docker-compose.yml, por defecto viene configurado con MariaDB pero puede usarse con PostgreSQL.
    Una vez instalada la extensión, VSCode les preguntará si desea abrir el contenedor con la configuración dentro de .devcontainer. Una vez en VSCode van a ver los archivos dentro del contenedor y en su terminal ya van a estar dentro del contenedor y ahi mismo recomiendo que vayan trabajando con los comandos de Bench.
    Configurar Bench
    Correr el siguiente comando dentro de la terminal del contenedor. Puede que necesites abrir una nueva terminal en VSCode
    bench init --skip-redis-config-generation --frappe-branch version-13 frappe-bench
    cd frappe-bench
    Apartir de acá, todos los comandos se ejecutan siempre dentro de la carpeta frappe-bench, sino no va a funcionar.
    Configurar hosts
    Tenemos que decirle a bench que use los contenedores correctos en lugar de localhost. Correr el siguiente comando dentro del cotenedor.
    bench set-mariadb-host mariadb
    bench set-redis-cache-host redis-cache:6379
    bench set-redis-queue-host redis-queue:6379
    bench set-redis-socketio-host redis-socketio:6379
    Editar archivo Procfile
    Abrir el archivo Procfile y quitar las tres lineas que contienen la configuración de Redis, ya sea manualmente o corriendo el siguiente comando:
    sed -i '/redis/d' ./Procfile
    Crear un nuevo sitio con bench
    Se puede crear un nuevo sitio con el siguiente comando:
    bench new-site sitename --no-mariadb-socket
    sitename DEBE terminar con .localhost para hacer deploy locales.
    Ejemplo:
    bench new-site mysite.localhost --no-mariadb-socket
    El comando pedirá la clave del usuario root de MariaDB. La clave por defecto es 123. También te pedirá que definas la clave del usuario Administrator que se usará para logearse en Frappe.

    Esto creará un nuevo sitio y un directorio mysite.localhost dentro de frappe-bench/sites.

    La opción --no-mariadb-socket configurará las credenciales de la base de datos del site para que funcionen con docker.
    Si querés ingresar por navegador con mysite.localhost tenés que hacer las configuraciones correspondientes en /etc/host si estás en Linux o el equivalente de Windows.
    Establecer el modo desarrollador de bench en el nuevo sitio
    Para desarrollar una nueva app, él último paso será poner el site en developer mode. La documentación está disponible en este link.
    bench --site mysite.localhost set-config developer_mode 1
    bench --site mysite.localhost clear-cache
    Crear una nueva app
    Para crear una nueva app hay que correr el siguiente comando:
    bench new-app sample_app
    sample_app es un ejemplo. Los nombre de las apps deben llevar _ para separar sus palabras.

    El comando irá pidiendo los siguientes campos para rellenar.
    App Name: sample_app
    App Title: Sample App
    App Description: This is a sample app.
    App Publisher: Acme Inc.
    App Icon: icon-linux
    App Color: #6DAFC9
    App Email: info@example.com
    App URL: http://example.com
    App License: MIT
    Por último, para instalar la app en el site hay que correr el siguiente comando:
    bench --site mysite.localhost install-app sample_app
    Para más información detallada sobre las apps de Frappe tienen el siguiente link de la documentación.
    Instalar una app
    También se pueda instalar una app ya existente. Previamente debe estar en un repositorio git.

    En el siguiente ejemplo se descarga una app y luego se instala en el site.
    bench get-app myapp https://github.com/myusername/myapp.git
    bench --site mysite.localhost install-app myapp
    Arrancar Frappe
    Ejecutar el siguiente comando dentro del directorio frappe-bench.
    bench start
    Ahora podés logearte con el usuario Administrator y el password que hayas registrado cuando creaste el site.
    Tu sitio ahora será accesible desde localhost:8000 o si configuraste tu etc/host la url que le hayas definido.
    Arrancar manualmente el contenedor
    En caso de que no uses VSCode, podés arrancar el contenedor de forma manual con el siguiente comando:
    Corriendo los contenedores
    docker-compose -f .devcontainer/docker-compose.yml up -d
    Y entrar al shell del contenedor de desarrollo con el siguiente comando:
    docker exec -e "TERM=xterm-256color" -w /workspace/development -it devcontainer_frappe_1 bash
    Y luego es repetir los pasos detallados más arriba en la sección Configurar Bench

    29

    This website collects cookies to deliver better user experience

    Creando un entorno local de Frappe con Docker