Add ERPNext Dockerfile + build script for automated security rebuilds
- erpnext/Dockerfile: builds from frappe/erpnext:v15 base with custom apps - erpnext/build.sh: stages custom apps into build context before docker build - Container update script now runs build.sh pre-build + extracts assets post-build - ERPNext will auto-rebuild nightly when base image has security patches Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
941349ccd9
commit
0085e2b33e
3 changed files with 46 additions and 0 deletions
4
erpnext/.gitignore
vendored
Normal file
4
erpnext/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
frappe_crypto/
|
||||||
|
frappe_adyen/
|
||||||
|
frappe_ca_registry/
|
||||||
|
performancewest_erpnext/
|
||||||
28
erpnext/Dockerfile
Normal file
28
erpnext/Dockerfile
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
# 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
|
||||||
|
RUN git clone --depth=1 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
|
||||||
14
erpnext/build.sh
Executable file
14
erpnext/build.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Pre-build step: copy custom Frappe apps into the erpnext/ build context.
|
||||||
|
# Called automatically by the container update script before docker compose build.
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
REPO_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||||
|
|
||||||
|
echo "Staging custom apps into $SCRIPT_DIR..."
|
||||||
|
for app in frappe_crypto frappe_adyen frappe_ca_registry performancewest_erpnext; do
|
||||||
|
rm -rf "$SCRIPT_DIR/$app"
|
||||||
|
cp -a "$REPO_ROOT/$app" "$SCRIPT_DIR/$app"
|
||||||
|
done
|
||||||
|
echo "Done. Ready for docker compose build erpnext."
|
||||||
Loading…
Add table
Add a link
Reference in a new issue