ARG FRAPPE_BRANCH=version-15 FROM frappe/build:${FRAPPE_BRANCH} AS builder ARG FRAPPE_BRANCH=version-15 ARG FRAPPE_PATH=https://github.com/frappe/frappe ARG APPS_JSON_BASE64 USER root RUN if [ -n "${APPS_JSON_BASE64}" ]; then \ mkdir /opt/frappe && echo "${APPS_JSON_BASE64}" | base64 -d > /opt/frappe/apps.json; \ fi USER frappe RUN export APP_INSTALL_ARGS="" && \ if [ -n "${APPS_JSON_BASE64}" ]; then \ export APP_INSTALL_ARGS="--apps_path=/opt/frappe/apps.json"; \ fi && \ bench init ${APP_INSTALL_ARGS}\ --frappe-branch=${FRAPPE_BRANCH} \ --frappe-path=${FRAPPE_PATH} \ --no-procfile \ --no-backups \ --skip-redis-config-generation \ --verbose \ /home/frappe/frappe-bench && \ cd /home/frappe/frappe-bench && \ echo "{}" > sites/common_site_config.json && \ find apps -mindepth 1 -path "*/.git" | xargs rm -fr FROM frappe/base:${FRAPPE_BRANCH} AS backend USER frappe COPY --from=builder --chown=frappe:frappe /home/frappe/frappe-bench /home/frappe/frappe-bench WORKDIR /home/frappe/frappe-bench VOLUME [ \ "/home/frappe/frappe-bench/sites", \ "/home/frappe/frappe-bench/sites/assets", \ "/home/frappe/frappe-bench/logs" \ ] CMD [ \ "/home/frappe/frappe-bench/env/bin/gunicorn", \ "--chdir=/home/frappe/frappe-bench/sites", \ "--bind=0.0.0.0:8000", \ "--threads=4", \ "--workers=2", \ "--worker-class=gthread", \ "--worker-tmp-dir=/dev/shm", \ "--timeout=120", \ "--preload", \ "frappe.app:application" \ ]