Try ERPNext Buy Support Partners Foundation

How to add custom app to frappe docker / production installation


i’ve spend the last few weeks customizing ERPNext to our needs. Alle customizations are put into a seperate app. After testing everything i now want to setup a production installation with docker. For testing installations i used pipechs docker images which worked flawlesly. Installing the app in development mode where done with:

bench get-app <git-url>
bench install-app <app_name>

For production installation i would like to use frappe_docker. I got v12 setup without any big issues, but i don’t get it how to add a custom app via docker-compose/dockerfiles. I followed the Custom apps description found in the git-Repository creating the directories and dockerfiles. Also confuring the shell scripts etc. But i always end with the same issue, that the setup fails when it tries to install the app, as it is always missing. It seems it is not picking up the created files.

For setup i call:
docker-compose --project-name <project_name> up -d

Manually adding file doesn’t work either:

docker-compose --project-name "<project_name>" --project-directory . up -d \
        -f installation/docker-compose-frappe.yml \
        -f installation/docker-compose-erpnext.yml \
        -f installation/docker-compose-<app_file>.yml \
        -f installation/docker-compose-common.yml

The only way i found getting the app installed, is by shelling into the erpnext-python container and manually installing the app by calling:

install_app <app_name> <git_url>
echo -n "\n<app_name>" >> sites/apps.txt
bench --site <site_name> install-app <app_name>

But i don’t know how to add those calls to the existing setup-pipeline. Running those steps manually doesn’t seem to be a good idea for production installs.

Would be cool if someone can shed some light on how to do setup correctly.



unfortunately the following error on my instance
root@32d40c9cfc97:/home/frappe/frappe-bench# install_app ebclocal
Cloning into ‘EBCLocal’…
remote: Enumerating objects: 58, done.
remote: Counting objects: 100% (58/58), done.
remote: Compressing objects: 100% (50/50), done.
remote: Total 58 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (58/58), done.
ERROR: /home/frappe/frappe-bench/apps/ebclocal is not a valid editable requirement. It should either be a path to a local project or a VCS URL (beginning with svn+, git+, hg+, or bzr+).
WARNING: You are using pip version 20.1.1; however, version 20.2.4 is available.
You should consider upgrading via the ‘/home/frappe/frappe-bench/env/bin/python -m pip install --upgrade pip’ command.
root@32d40c9cfc97:/home/frappe/frappe-bench# echo -n “\nebclocal” >> sites/apps.txt
root@32d40c9cfc97:/home/frappe/frappe-bench# bench --site install-app ebclocal
An error occurred while installing ebclocal:
No module named ‘\nebclocal’
Traceback (most recent call last):
File “/usr/local/bin/bench”, line 18, in
[sys.executable, bench_helper, ‘frappe’] + sys.argv[1:],
File “/opt/bitnami/python/lib/python3.7/”, line 363, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command ‘[’/home/frappe/frappe-bench/env/bin/python’, ‘/home/frappe/frappe-bench/apps/frappe/frappe/utils/’, ‘frappe’, ‘–site’, ‘’, ‘install-app’, ‘ebclocal’]’ returned non-zero exit status 1.