Work About Team Blog Tutorials FAQ
Book a discovery call → Chat on WhatsApp

Home / Blog / DevOps & Cloud / Frappe Docker: Custom Apps Installation Using Quick Build Image

FrappeERPNextDockerDevOpsPythonTutorial

Frappe Docker: Custom Apps Installation Using Quick Build Image

Running Frappe and ERPNext inside Docker is the gold standard for reliable, reproducible deployments.

However, one of the biggest friction points developers face is installing custom Frappe apps on top of the base image. Traditional multi-stage builds often take 15 to 25 minutes to recompile assets and resolve Python wheels every time you add or update an internal app.

With the Frappe Docker Quick Build Image, Frappe introduced a streamlined build pipeline that slashes build times down to minutes by using pre-compiled assets.

Here is the exact step-by-step guide to installing custom apps using the Quick Build image.


Why Use the Quick Build Image?

  1. Drastically Faster CI/CD Builds: Standard builds re-download base node dependencies and re-run yarn compilation from scratch. The quick build image pre-packages frontend tooling.
  2. Deterministic Python Dependencies: Avoids broken pip sub-dependency conflicts across disparate host machines.
  3. Standardized Container Packaging: Produces production-ready OCI-compliant container images ready to push to GitHub Container Registry (GHCR) or Docker Hub.

Step 1: Clone the Official frappe_docker Repository

Start by cloning the official repository:

git clone https://github.com/frappe/frappe_docker.git
cd frappe_docker

Step 2: Configure apps.json for Your Custom Apps

The quick build process relies on a JSON manifest named apps.json that defines the custom app git repositories, branches, and build arguments.

Create or edit apps.json in the build directory:

[
  {
    "url": "https://github.com/frappe/erpnext",
    "branch": "version-15"
  },
  {
    "url": "https://github.com/your-org/your_custom_app",
    "branch": "main"
  },
  {
    "url": "https://github.com/frappe/hrms",
    "branch": "version-15"
  }
]

Private Repositories: If your custom app lives in a private GitHub repo, encode your GitHub Personal Access Token (PAT) into the URL: https://<TOKEN>@github.com/your-org/your_custom_app.git


Step 3: Trigger the Quick Build Command

Run the build command targeting the quick build image target:

export APPS_JSON_BASE64=$(base64 -w 0 apps.json)

docker build \
  --build-arg=FRAPPE_PATH=https://github.com/frappe/frappe \
  --build-arg=FRAPPE_BRANCH=version-15 \
  --build-arg=PYTHON_VERSION=3.11.9 \
  --build-arg=NODE_VERSION=18.20.2 \
  --build-arg=APPS_JSON_BASE64=$APPS_JSON_BASE64 \
  --tag my-custom-frappe:version-15 \
  --file images/custom/Containerfile .

Note: On macOS, use base64 -b 0 or base64 without flags.


Step 4: Installing the App onto Your Site

Once the container image is built and running inside your docker-compose.yml:

  1. Exec into the backend container:
docker compose exec backend bash
  1. Install your custom app onto your active tenant site:
bench --site frontend.localhost install-app your_custom_app
bench --site frontend.localhost migrate
  1. Clear cache and reload:
bench --site frontend.localhost clear-cache

Summary

The Quick Build image eliminates the headache of containerized Frappe customization, delivering lightning-fast builds and predictable production deployments.

Need enterprise Frappe/ERPNext custom app engineering, Docker orchestration, or workflow automations? Schedule a consultation with Klickspell.

Full-Stack Web Engineering

Need technical precision for your web stack?
Architected for performance & scale.

From modern headless commerce to enterprise infrastructure and clean frontend state systems, Klickspell delivers senior engineering craft without agency bloat.

Book Free Technical Call → Explore Headless Engineering ↗

Keep Reading

Related Engineering Articles

ERPNextFrappe

How to Install ERPNext on ARM64 (Apple Silicon & Ampere) Using Docker

A complete step-by-step guide to installing and running ERPNext on ARM64 / aarch64 architecture (Apple M1/M2/M3/M4 Macs and Oracle Ampere VPS) using Docker.

6 min read Read →
FrappeERPNext

Frappe Production: Install Custom Apps with Docker (Guide)

How to install and deploy custom Frappe and ERPNext apps in a multi-container Docker production setup using Docker Compose and Traefik or Nginx.

6 min read Read →

Technical Blog

Explore all 50+ engineering tutorials

All Articles ↗

Looking for custom
Shopify engineering craft?

Let's build
your store right.

Book a free 30-minute call. We'll talk through your store goals, timeline, and budget.

Free 30-min call · Discuss scope & budget

Book your free call → Chat on WhatsApp

The craft in every click.