diff --git a/apps_new.json b/apps_new.json new file mode 100644 index 00000000..26cab6a4 --- /dev/null +++ b/apps_new.json @@ -0,0 +1,14 @@ +[ + { + "url": "https://githaven.org/Shiloh/brotherton-erpnext", + "branch": "production" + }, + { + "url": "https://github.com/frappe/hrms", + "branch": "v15.15.0" + }, + { + "url": "https://githaven.org/CaWittMN08/custom_ui", + "branch": "clients-table" + } +] diff --git a/build_new.sh b/build_new.sh new file mode 100755 index 00000000..ac659362 --- /dev/null +++ b/build_new.sh @@ -0,0 +1,7 @@ +export TAG=1.1.0 +docker build \ + --build-arg=FRAPPE_PATH=https://github.com/frappe/frappe \ + --build-arg=FRAPPE_BRANCH=version-15 \ + --build-arg=APPS_JSON_BASE64=$APPS_JSON_BASE64 \ + --tag=githaven.org/shiloh/brotherton_frappe_docker:$TAG \ + --file=images/layered/Containerfile . diff --git a/images/layered/Containerfile b/images/layered/Containerfile new file mode 100644 index 00000000..12a089ee --- /dev/null +++ b/images/layered/Containerfile @@ -0,0 +1,58 @@ +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" \ +]