frappe_docker/custom_app
2022-03-19 11:03:52 +03:00
..
backend.Dockerfile Use erpnext in custom app tutorial 2022-03-19 11:00:28 +03:00
compose.override.yaml Global refactoring (#617) 2022-03-14 11:23:03 +05:30
docker-bake.hcl Global refactoring (#617) 2022-03-14 11:23:03 +05:30
frontend.Dockerfile Use assets builder in custom_app tutorial 2022-03-19 11:00:15 +03:00
README.md Add info about base images (frappe or erpnext) 2022-03-19 11:03:52 +03:00

This is basic configuration for building images and testing custom apps that use Frappe.

You can see that there's four files in this folder:

  • backend.Dockerfile,
  • frontend.Dockerfile,
  • docker-bake.hcl,
  • compose.override.yaml.

Python code will backend.Dockerfile. JS and CSS (and other fancy frontend stuff) files will be built in frontend.Dockerfile if required and served from there.

docker-bake.hcl is reference file for cool new Buildx Bake. It helps to build images without having to remember all build arguments.

compose.override.yaml is Compose override that replaces images from main compose file so it would use your own images.

To get started, install Docker and Buildx. Then copy all content of this folder (except this README) to your app's root directory. Also copy compose.yaml in the root of this repository.

Before the next step—to build images—replace "custom_app" with your app's name in docker-bake.hcl. After that, let's try to build:

FRAPPE_VERSION=<Frappe version you need> docker buildx bake

💡 We assume that majority of our users use ERPNext, that's why images in this tutorial are based on ERPNext images. In case you don't want to use ERPNext, remove erpnext references in Dockerfiles and change base images to Frappe ones.

If something goes wrong feel free to leave an issue.

To test if site works, setup .env file (check example) and run:

docker-compose -f compose.yaml -f overrides/compose.noproxy.yaml -f overrides/compose.mariadb.yaml -f overrides/compose.redis.yaml -f custom_app/compose.override.yaml up -d
docker-compose exec backend \
  bench new-site 127.0.0.1 \
    --mariadb-root-password 123 \
    --admin-password admin \
    --install-app <Name of your app>
docker-compose restart backend

Cool! You just containerized your app!