git clone https://github.com/castlecraft/frappe_containers
cd frappe_containers
git clone https://github.com/frappe/payments -b develop --origin upstream --depth 1 repos/payments
git clone https://github.com/frappe/erpnext -b version-14 --origin upstream --depth 1 repos/erpnext
git clone https://github.com/resilient-tech/india-compliance -b version-14 --origin upstream --depth 1 repos/india_complianceWith buildah
buildah build -t ghcr.io/castlecraft/frappe_containers/erpnext:latest -f images/production/Containerfile .Or with docker
docker build -t ghcr.io/castlecraft/frappe_containers/erpnext:latest -f images/production/Containerfile .With podman-compose
podman-compose up -dOr with docker compose
docker compose up -d
# or
docker-compose up -dNo script except nginx-entrypoint.sh uses environment variables.
Variables used are as follows:
BACKEND: Set to{host}:{port}, defaults to0.0.0.0:8000SOCKETIO: Set to{host}:{port}, defaults to0.0.0.0:9000UPSTREAM_REAL_IP_ADDRESS: Set Nginx config for ngx_http_realip_module#set_real_ip_from, defaults to127.0.0.1UPSTREAM_REAL_IP_HEADER: Set Nginx config for ngx_http_realip_module#real_ip_header, defaults toX-Forwarded-ForUPSTREAM_REAL_IP_RECURSIVE: Set Nginx config for ngx_http_realip_module#real_ip_recursive Set defaults tooffFRAPPE_SITE_NAME_HEADER: Set proxy headerX-Frappe-Site-Nameand serve site named in the header, defaults to$host, i.e. find site name from host header.PROXY_READ_TIMEOUT: Upstream gunicorn service timeout, defaults to120CLIENT_MAX_BODY_SIZE: Max body size for uploads, defaults to50m
To bypass nginx-entrypoint.sh, mount desired /etc/nginx/conf.d/default.conf and run nginx -g 'daemon off;' as container command.