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_compliance
With 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 -d
Or with docker compose
docker compose up -d
# or
docker-compose up -d
No script except nginx-entrypoint.sh
uses environment variables.
Variables used are as follows:
BACKEND
: Set to{host}:{port}
, defaults to0.0.0.0:8000
SOCKETIO
: Set to{host}:{port}
, defaults to0.0.0.0:9000
UPSTREAM_REAL_IP_ADDRESS
: Set Nginx config for ngx_http_realip_module#set_real_ip_from, defaults to127.0.0.1
UPSTREAM_REAL_IP_HEADER
: Set Nginx config for ngx_http_realip_module#real_ip_header, defaults toX-Forwarded-For
UPSTREAM_REAL_IP_RECURSIVE
: Set Nginx config for ngx_http_realip_module#real_ip_recursive Set defaults tooff
FRAPPE_SITE_NAME_HEADER
: Set proxy headerX-Frappe-Site-Name
and 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 to120
CLIENT_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.