new-site/erpnext/Dockerfile
justin 00c960f5b5 build: pin payments to version-15 + stage apps in deploy.sh erpnext
Two build fixes surfaced while shipping the set-password rename:

1. erpnext/Dockerfile cloned frappe/payments unpinned; its default branch now
   requires Python >=3.14 while frappe/erpnext:v15 ships 3.11, so the image
   build failed with 'Package payments requires a different Python'. Pin the
   clone to --branch version-15.

2. deploy.sh built the erpnext image without first staging the custom Frappe
   apps into the build context (erpnext/build.sh). That meant a baked-code
   change could silently ship stale code. Stage apps when erpnext is built.
2026-06-02 23:13:01 -05:00

32 lines
1.5 KiB
Docker

# Performance West ERPNext — custom image with PW apps baked in.
# Base: official Frappe bench image (includes ERPNext).
# Custom apps: performancewest_erpnext, frappe_ca_registry, frappe_crypto, frappe_adyen
#
# Pre-build step copies apps into erpnext/ dir (see erpnext/build.sh).
# Rebuilt nightly by pw-container-update to pick up base image security patches.
FROM frappe/erpnext:v15
USER frappe
WORKDIR /home/frappe/frappe-bench
# Copy custom Frappe apps (staged into build context by build.sh)
COPY --chown=frappe:frappe frappe_crypto/ apps/frappe_crypto/
COPY --chown=frappe:frappe frappe_adyen/ apps/frappe_adyen/
COPY --chown=frappe:frappe frappe_ca_registry/ apps/frappe_ca_registry/
COPY --chown=frappe:frappe performancewest_erpnext/ apps/performancewest_erpnext/
# Install the payments app (not in base image) + all custom apps
# Pin payments to the version-15 branch. The default branch now requires
# Python >=3.14, but the frappe/erpnext:v15 base ships Python 3.11, so an
# unpinned clone breaks the build ("Package 'payments' requires a different
# Python: 3.11.6 not in '>=3.14'").
RUN git clone --depth=1 --branch version-15 https://github.com/frappe/payments.git apps/payments \
&& env/bin/pip install --quiet -e apps/payments \
&& env/bin/pip install --quiet -e apps/frappe_crypto \
&& env/bin/pip install --quiet -e apps/frappe_adyen \
&& env/bin/pip install --quiet -e apps/frappe_ca_registry \
&& env/bin/pip install --quiet -e apps/performancewest_erpnext
# Build JS/CSS assets
RUN bench build --app payments 2>/dev/null || true