From edfd8f0755a22c53a7f45b472d5746a10ba80d61 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 5 May 2026 17:03:26 +0000 Subject: [PATCH 01/27] chore: Update example.env --- example.env | 2 +- pwd.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example.env b/example.env index b8f5a10e..899486dd 100644 --- a/example.env +++ b/example.env @@ -1,6 +1,6 @@ # Reference: https://github.com/frappe/frappe_docker/blob/main/docs/02-setup/04-env-variables.md -ERPNEXT_VERSION=v16.16.0 +ERPNEXT_VERSION=v16.17.0 DB_PASSWORD=123 diff --git a/pwd.yml b/pwd.yml index a2215a4a..6997042d 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,6 +1,6 @@ services: backend: - image: frappe/erpnext:v16.16.0 + image: frappe/erpnext:v16.17.0 networks: - frappe_network deploy: @@ -16,7 +16,7 @@ services: MARIADB_ROOT_PASSWORD: admin configurator: - image: frappe/erpnext:v16.16.0 + image: frappe/erpnext:v16.17.0 networks: - frappe_network deploy: @@ -45,7 +45,7 @@ services: - logs:/home/frappe/frappe-bench/logs create-site: - image: frappe/erpnext:v16.16.0 + image: frappe/erpnext:v16.17.0 networks: - frappe_network deploy: @@ -101,7 +101,7 @@ services: - db-data:/var/lib/mysql frontend: - image: frappe/erpnext:v16.16.0 + image: frappe/erpnext:v16.17.0 networks: - frappe_network depends_on: @@ -127,7 +127,7 @@ services: - "8080:8080" queue-long: - image: frappe/erpnext:v16.16.0 + image: frappe/erpnext:v16.17.0 networks: - frappe_network deploy: @@ -146,7 +146,7 @@ services: FRAPPE_REDIS_QUEUE: redis://redis-queue:6379 queue-short: - image: frappe/erpnext:v16.16.0 + image: frappe/erpnext:v16.17.0 networks: - frappe_network deploy: @@ -183,7 +183,7 @@ services: condition: on-failure scheduler: - image: frappe/erpnext:v16.16.0 + image: frappe/erpnext:v16.17.0 networks: - frappe_network deploy: @@ -197,7 +197,7 @@ services: - logs:/home/frappe/frappe-bench/logs websocket: - image: frappe/erpnext:v16.16.0 + image: frappe/erpnext:v16.17.0 networks: - frappe_network deploy: From 373e6c1e203114b0a0faa65a0e099dba6ce6d942 Mon Sep 17 00:00:00 2001 From: Ingo Schuck Date: Wed, 6 May 2026 19:35:03 +0200 Subject: [PATCH 02/27] Fix entrypoint.sh permission --- images/layered/Containerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/images/layered/Containerfile b/images/layered/Containerfile index 7482280c..18511c61 100644 --- a/images/layered/Containerfile +++ b/images/layered/Containerfile @@ -47,7 +47,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod +x /usr/local/bin/entrypoint.sh +RUN chmod ugo+rx /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] From 5d9f2e41a04d7e9eccb2ceb9c3c3791dc406f562 Mon Sep 17 00:00:00 2001 From: jslocomotor <210083531+jslocomotor@users.noreply.github.com> Date: Wed, 6 May 2026 20:30:52 +0200 Subject: [PATCH 03/27] feat(images): toggle chromium installation --- docs/02-setup/02-build-setup.md | 1 + images/bench/Dockerfile | 8 ++++++-- images/custom/Containerfile | 9 +++++++-- images/production/Containerfile | 9 +++++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/docs/02-setup/02-build-setup.md b/docs/02-setup/02-build-setup.md index 326de9bf..09cef899 100644 --- a/docs/02-setup/02-build-setup.md +++ b/docs/02-setup/02-build-setup.md @@ -96,6 +96,7 @@ See [Automated Builds and Deployment](../03-production/06-automated-builds-and-d | PYTHON_VERSION | Python version for the base image | | NODE_VERSION | Node.js version | | WKHTMLTOPDF_VERSION | wkhtmltopdf version | +| INSTALL_CHROMIUM | Configure chromium installation, defaults to `true` - needed for Frappe Workbench version >15 | | **bench only** | | | DEBIAN_BASE | Debian base version for the bench image, defaults to `bookworm` | | WKHTMLTOPDF_DISTRO | use the specified distro for debian package. Default is `bookworm` | diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 9c21345d..1cb0b278 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -4,6 +4,7 @@ LABEL author=frappé ARG GIT_REPO=https://github.com/frappe/bench.git ARG GIT_BRANCH=v5.x +ARG INSTALL_CHROMIUM=true RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ @@ -23,8 +24,6 @@ RUN apt-get update \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # to work inside the container locales \ build-essential \ @@ -75,6 +74,11 @@ RUN apt-get update \ file \ # For MIME type detection media-types \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ && rm -rf /var/lib/apt/lists/* RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 2ecb06d7..5f8072f6 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -8,6 +8,8 @@ COPY resources/core/nginx/security_headers.conf /etc/nginx/snippets/security_hea ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm +ARG INSTALL_CHROMIUM=true + ARG NODE_VERSION=24.13.0 ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -26,8 +28,6 @@ RUN useradd -ms /bin/bash frappe \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # For backups restic \ gpg \ @@ -62,6 +62,11 @@ RUN useradd -ms /bin/bash frappe \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ # Clean up && rm -rf /var/lib/apt/lists/* \ && rm -fr /etc/nginx/sites-enabled/default \ diff --git a/images/production/Containerfile b/images/production/Containerfile index f95a9703..e2a2f3ee 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -4,6 +4,8 @@ FROM python:${PYTHON_VERSION}-slim-${DEBIAN_BASE} AS base ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm +ARG INSTALL_CHROMIUM=true + ARG NODE_VERSION=24.13.0 ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -22,8 +24,6 @@ RUN useradd -ms /bin/bash frappe \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # For backups restic \ gpg \ @@ -58,6 +58,11 @@ RUN useradd -ms /bin/bash frappe \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ # Clean up && rm -rf /var/lib/apt/lists/* \ && rm -fr /etc/nginx/sites-enabled/default \ From 2af7b06f8d9aa20334c8acb7cbf5ab393f39ab15 Mon Sep 17 00:00:00 2001 From: jslocomotor <210083531+jslocomotor@users.noreply.github.com> Date: Thu, 7 May 2026 14:03:12 +0200 Subject: [PATCH 04/27] feat(images): permissive boolean check for INSTALL_CHROMIUM --- images/bench/Dockerfile | 2 +- images/custom/Containerfile | 2 +- images/production/Containerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 1cb0b278..2b2540b5 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -75,7 +75,7 @@ RUN apt-get update \ # For MIME type detection media-types \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 5f8072f6..084104b3 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -63,7 +63,7 @@ RUN useradd -ms /bin/bash frappe \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ diff --git a/images/production/Containerfile b/images/production/Containerfile index e2a2f3ee..983dc2ea 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -59,7 +59,7 @@ RUN useradd -ms /bin/bash frappe \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ From c302af9dd5f3bcccfdcee62f54693fb7120199ce Mon Sep 17 00:00:00 2001 From: jslocomotor <210083531+jslocomotor@users.noreply.github.com> Date: Wed, 6 May 2026 20:30:52 +0200 Subject: [PATCH 05/27] feat(images): toggle chromium installation --- docs/02-setup/02-build-setup.md | 1 + images/bench/Dockerfile | 8 ++++++-- images/custom/Containerfile | 9 +++++++-- images/production/Containerfile | 9 +++++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/docs/02-setup/02-build-setup.md b/docs/02-setup/02-build-setup.md index 326de9bf..09cef899 100644 --- a/docs/02-setup/02-build-setup.md +++ b/docs/02-setup/02-build-setup.md @@ -96,6 +96,7 @@ See [Automated Builds and Deployment](../03-production/06-automated-builds-and-d | PYTHON_VERSION | Python version for the base image | | NODE_VERSION | Node.js version | | WKHTMLTOPDF_VERSION | wkhtmltopdf version | +| INSTALL_CHROMIUM | Configure chromium installation, defaults to `true` - needed for Frappe Workbench version >15 | | **bench only** | | | DEBIAN_BASE | Debian base version for the bench image, defaults to `bookworm` | | WKHTMLTOPDF_DISTRO | use the specified distro for debian package. Default is `bookworm` | diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 9c21345d..1cb0b278 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -4,6 +4,7 @@ LABEL author=frappé ARG GIT_REPO=https://github.com/frappe/bench.git ARG GIT_BRANCH=v5.x +ARG INSTALL_CHROMIUM=true RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ @@ -23,8 +24,6 @@ RUN apt-get update \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # to work inside the container locales \ build-essential \ @@ -75,6 +74,11 @@ RUN apt-get update \ file \ # For MIME type detection media-types \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ && rm -rf /var/lib/apt/lists/* RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 2ecb06d7..5f8072f6 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -8,6 +8,8 @@ COPY resources/core/nginx/security_headers.conf /etc/nginx/snippets/security_hea ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm +ARG INSTALL_CHROMIUM=true + ARG NODE_VERSION=24.13.0 ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -26,8 +28,6 @@ RUN useradd -ms /bin/bash frappe \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # For backups restic \ gpg \ @@ -62,6 +62,11 @@ RUN useradd -ms /bin/bash frappe \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ # Clean up && rm -rf /var/lib/apt/lists/* \ && rm -fr /etc/nginx/sites-enabled/default \ diff --git a/images/production/Containerfile b/images/production/Containerfile index f95a9703..e2a2f3ee 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -4,6 +4,8 @@ FROM python:${PYTHON_VERSION}-slim-${DEBIAN_BASE} AS base ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm +ARG INSTALL_CHROMIUM=true + ARG NODE_VERSION=24.13.0 ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -22,8 +24,6 @@ RUN useradd -ms /bin/bash frappe \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # For backups restic \ gpg \ @@ -58,6 +58,11 @@ RUN useradd -ms /bin/bash frappe \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ # Clean up && rm -rf /var/lib/apt/lists/* \ && rm -fr /etc/nginx/sites-enabled/default \ From 0a04e5ecd26b89382a8c3c81685b928359c90e5d Mon Sep 17 00:00:00 2001 From: jslocomotor <210083531+jslocomotor@users.noreply.github.com> Date: Thu, 7 May 2026 14:03:12 +0200 Subject: [PATCH 06/27] feat(images): permissive boolean check for INSTALL_CHROMIUM --- images/bench/Dockerfile | 2 +- images/custom/Containerfile | 2 +- images/production/Containerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 1cb0b278..2b2540b5 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -75,7 +75,7 @@ RUN apt-get update \ # For MIME type detection media-types \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 5f8072f6..084104b3 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -63,7 +63,7 @@ RUN useradd -ms /bin/bash frappe \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ diff --git a/images/production/Containerfile b/images/production/Containerfile index e2a2f3ee..983dc2ea 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -59,7 +59,7 @@ RUN useradd -ms /bin/bash frappe \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ From c7ac6b7666eb4ae9bd40e9665c23f27a2cedb3d9 Mon Sep 17 00:00:00 2001 From: Ingo Schuck Date: Thu, 7 May 2026 21:27:16 +0200 Subject: [PATCH 07/27] fix all entrypoint.sh permissions to 755 --- images/custom/Containerfile | 2 +- images/layered/Containerfile | 2 +- images/production/Containerfile | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 084104b3..9528688b 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -163,7 +163,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod +x /usr/local/bin/entrypoint.sh +RUN chmod 755 /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/images/layered/Containerfile b/images/layered/Containerfile index 18511c61..c3326ddd 100644 --- a/images/layered/Containerfile +++ b/images/layered/Containerfile @@ -47,7 +47,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod ugo+rx /usr/local/bin/entrypoint.sh +RUN chmod 755 /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/images/production/Containerfile b/images/production/Containerfile index 983dc2ea..7ad4089d 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -82,6 +82,7 @@ RUN useradd -ms /bin/bash frappe \ COPY resources/core/nginx/nginx-template.conf /templates/nginx/frappe.conf.template COPY resources/core/nginx/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh COPY resources/core/nginx/security_headers.conf /etc/nginx/snippets/security_headers.conf +RUN chmod 755 /usr/local/bin/nginx-entrypoint.sh FROM base AS build @@ -153,7 +154,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod +x /usr/local/bin/entrypoint.sh +RUN chmod 755 /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] From 93ade44c6b5f25b409c41f04c18e22737e74d69b Mon Sep 17 00:00:00 2001 From: Ingo Schuck Date: Thu, 7 May 2026 21:50:12 +0200 Subject: [PATCH 08/27] Revert "fix all entrypoint.sh permissions to 755" This reverts commit c7ac6b7666eb4ae9bd40e9665c23f27a2cedb3d9. --- images/custom/Containerfile | 2 +- images/layered/Containerfile | 2 +- images/production/Containerfile | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 9528688b..084104b3 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -163,7 +163,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod 755 /usr/local/bin/entrypoint.sh +RUN chmod +x /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/images/layered/Containerfile b/images/layered/Containerfile index c3326ddd..18511c61 100644 --- a/images/layered/Containerfile +++ b/images/layered/Containerfile @@ -47,7 +47,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod 755 /usr/local/bin/entrypoint.sh +RUN chmod ugo+rx /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/images/production/Containerfile b/images/production/Containerfile index 7ad4089d..983dc2ea 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -82,7 +82,6 @@ RUN useradd -ms /bin/bash frappe \ COPY resources/core/nginx/nginx-template.conf /templates/nginx/frappe.conf.template COPY resources/core/nginx/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh COPY resources/core/nginx/security_headers.conf /etc/nginx/snippets/security_headers.conf -RUN chmod 755 /usr/local/bin/nginx-entrypoint.sh FROM base AS build @@ -154,7 +153,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod 755 /usr/local/bin/entrypoint.sh +RUN chmod +x /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] From 8f4130b5d33d015bbdf6aab50d6a6210e4084862 Mon Sep 17 00:00:00 2001 From: Ingo Schuck Date: Thu, 7 May 2026 21:50:36 +0200 Subject: [PATCH 09/27] Revert "feat(images): permissive boolean check for INSTALL_CHROMIUM" This reverts commit 0a04e5ecd26b89382a8c3c81685b928359c90e5d. --- images/bench/Dockerfile | 2 +- images/custom/Containerfile | 2 +- images/production/Containerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 2b2540b5..1cb0b278 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -75,7 +75,7 @@ RUN apt-get update \ # For MIME type detection media-types \ # Chromium - && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 084104b3..5f8072f6 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -63,7 +63,7 @@ RUN useradd -ms /bin/bash frappe \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ # Chromium - && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ diff --git a/images/production/Containerfile b/images/production/Containerfile index 983dc2ea..e2a2f3ee 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -59,7 +59,7 @@ RUN useradd -ms /bin/bash frappe \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ # Chromium - && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ From 09fcd3e83b6327d27afd174d23ec116917adf000 Mon Sep 17 00:00:00 2001 From: Ingo Schuck Date: Thu, 7 May 2026 21:50:56 +0200 Subject: [PATCH 10/27] Revert "feat(images): toggle chromium installation" This reverts commit c302af9dd5f3bcccfdcee62f54693fb7120199ce. --- docs/02-setup/02-build-setup.md | 1 - images/bench/Dockerfile | 8 ++------ images/custom/Containerfile | 9 ++------- images/production/Containerfile | 9 ++------- 4 files changed, 6 insertions(+), 21 deletions(-) diff --git a/docs/02-setup/02-build-setup.md b/docs/02-setup/02-build-setup.md index 09cef899..326de9bf 100644 --- a/docs/02-setup/02-build-setup.md +++ b/docs/02-setup/02-build-setup.md @@ -96,7 +96,6 @@ See [Automated Builds and Deployment](../03-production/06-automated-builds-and-d | PYTHON_VERSION | Python version for the base image | | NODE_VERSION | Node.js version | | WKHTMLTOPDF_VERSION | wkhtmltopdf version | -| INSTALL_CHROMIUM | Configure chromium installation, defaults to `true` - needed for Frappe Workbench version >15 | | **bench only** | | | DEBIAN_BASE | Debian base version for the bench image, defaults to `bookworm` | | WKHTMLTOPDF_DISTRO | use the specified distro for debian package. Default is `bookworm` | diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 1cb0b278..9c21345d 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -4,7 +4,6 @@ LABEL author=frappé ARG GIT_REPO=https://github.com/frappe/bench.git ARG GIT_BRANCH=v5.x -ARG INSTALL_CHROMIUM=true RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ @@ -24,6 +23,8 @@ RUN apt-get update \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ + #Chromium + chromium-headless-shell \ # to work inside the container locales \ build-essential \ @@ -74,11 +75,6 @@ RUN apt-get update \ file \ # For MIME type detection media-types \ - # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ - DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ - chromium-headless-shell; \ - fi \ && rm -rf /var/lib/apt/lists/* RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 5f8072f6..2ecb06d7 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -8,8 +8,6 @@ COPY resources/core/nginx/security_headers.conf /etc/nginx/snippets/security_hea ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm -ARG INSTALL_CHROMIUM=true - ARG NODE_VERSION=24.13.0 ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -28,6 +26,8 @@ RUN useradd -ms /bin/bash frappe \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ + #Chromium + chromium-headless-shell \ # For backups restic \ gpg \ @@ -62,11 +62,6 @@ RUN useradd -ms /bin/bash frappe \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ - # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ - DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ - chromium-headless-shell; \ - fi \ # Clean up && rm -rf /var/lib/apt/lists/* \ && rm -fr /etc/nginx/sites-enabled/default \ diff --git a/images/production/Containerfile b/images/production/Containerfile index e2a2f3ee..f95a9703 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -4,8 +4,6 @@ FROM python:${PYTHON_VERSION}-slim-${DEBIAN_BASE} AS base ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm -ARG INSTALL_CHROMIUM=true - ARG NODE_VERSION=24.13.0 ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -24,6 +22,8 @@ RUN useradd -ms /bin/bash frappe \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ + #Chromium + chromium-headless-shell \ # For backups restic \ gpg \ @@ -58,11 +58,6 @@ RUN useradd -ms /bin/bash frappe \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ - # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ - DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ - chromium-headless-shell; \ - fi \ # Clean up && rm -rf /var/lib/apt/lists/* \ && rm -fr /etc/nginx/sites-enabled/default \ From c363f459a46d4d1834027edf33f3092991db431a Mon Sep 17 00:00:00 2001 From: Ingo Schuck Date: Fri, 8 May 2026 16:38:52 +0200 Subject: [PATCH 11/27] Reapply "feat(images): toggle chromium installation" This reverts commit 09fcd3e83b6327d27afd174d23ec116917adf000. --- docs/02-setup/02-build-setup.md | 1 + images/bench/Dockerfile | 8 ++++++-- images/custom/Containerfile | 9 +++++++-- images/production/Containerfile | 9 +++++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/docs/02-setup/02-build-setup.md b/docs/02-setup/02-build-setup.md index 326de9bf..09cef899 100644 --- a/docs/02-setup/02-build-setup.md +++ b/docs/02-setup/02-build-setup.md @@ -96,6 +96,7 @@ See [Automated Builds and Deployment](../03-production/06-automated-builds-and-d | PYTHON_VERSION | Python version for the base image | | NODE_VERSION | Node.js version | | WKHTMLTOPDF_VERSION | wkhtmltopdf version | +| INSTALL_CHROMIUM | Configure chromium installation, defaults to `true` - needed for Frappe Workbench version >15 | | **bench only** | | | DEBIAN_BASE | Debian base version for the bench image, defaults to `bookworm` | | WKHTMLTOPDF_DISTRO | use the specified distro for debian package. Default is `bookworm` | diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 9c21345d..1cb0b278 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -4,6 +4,7 @@ LABEL author=frappé ARG GIT_REPO=https://github.com/frappe/bench.git ARG GIT_BRANCH=v5.x +ARG INSTALL_CHROMIUM=true RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ @@ -23,8 +24,6 @@ RUN apt-get update \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # to work inside the container locales \ build-essential \ @@ -75,6 +74,11 @@ RUN apt-get update \ file \ # For MIME type detection media-types \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ && rm -rf /var/lib/apt/lists/* RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 2ecb06d7..5f8072f6 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -8,6 +8,8 @@ COPY resources/core/nginx/security_headers.conf /etc/nginx/snippets/security_hea ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm +ARG INSTALL_CHROMIUM=true + ARG NODE_VERSION=24.13.0 ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -26,8 +28,6 @@ RUN useradd -ms /bin/bash frappe \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # For backups restic \ gpg \ @@ -62,6 +62,11 @@ RUN useradd -ms /bin/bash frappe \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ # Clean up && rm -rf /var/lib/apt/lists/* \ && rm -fr /etc/nginx/sites-enabled/default \ diff --git a/images/production/Containerfile b/images/production/Containerfile index f95a9703..e2a2f3ee 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -4,6 +4,8 @@ FROM python:${PYTHON_VERSION}-slim-${DEBIAN_BASE} AS base ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 ARG WKHTMLTOPDF_DISTRO=bookworm +ARG INSTALL_CHROMIUM=true + ARG NODE_VERSION=24.13.0 ENV NVM_DIR=/home/frappe/.nvm ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -22,8 +24,6 @@ RUN useradd -ms /bin/bash frappe \ libharfbuzz0b \ libpangoft2-1.0-0 \ libpangocairo-1.0-0 \ - #Chromium - chromium-headless-shell \ # For backups restic \ gpg \ @@ -58,6 +58,11 @@ RUN useradd -ms /bin/bash frappe \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ + # Chromium + && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ + chromium-headless-shell; \ + fi \ # Clean up && rm -rf /var/lib/apt/lists/* \ && rm -fr /etc/nginx/sites-enabled/default \ From 37e91a2db231b9f76864295928eda9ce0313389d Mon Sep 17 00:00:00 2001 From: Ingo Schuck Date: Fri, 8 May 2026 16:39:31 +0200 Subject: [PATCH 12/27] Reapply "feat(images): permissive boolean check for INSTALL_CHROMIUM" This reverts commit 8f4130b5d33d015bbdf6aab50d6a6210e4084862. --- images/bench/Dockerfile | 2 +- images/custom/Containerfile | 2 +- images/production/Containerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 1cb0b278..2b2540b5 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -75,7 +75,7 @@ RUN apt-get update \ # For MIME type detection media-types \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 5f8072f6..084104b3 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -63,7 +63,7 @@ RUN useradd -ms /bin/bash frappe \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ diff --git a/images/production/Containerfile b/images/production/Containerfile index e2a2f3ee..983dc2ea 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -59,7 +59,7 @@ RUN useradd -ms /bin/bash frappe \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ # Chromium - && if [ "$INSTALL_CHROMIUM" = "true" ]; then \ + && if [ "$INSTALL_CHROMIUM" != "false" ]; then \ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ chromium-headless-shell; \ fi \ From 004b27a5a7f144c1974544978a4d08c8d7d14629 Mon Sep 17 00:00:00 2001 From: Ingo Schuck Date: Fri, 8 May 2026 16:41:30 +0200 Subject: [PATCH 13/27] Reapply "fix all entrypoint.sh permissions to 755" This reverts commit 93ade44c6b5f25b409c41f04c18e22737e74d69b. --- images/custom/Containerfile | 2 +- images/layered/Containerfile | 2 +- images/production/Containerfile | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 084104b3..9528688b 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -163,7 +163,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod +x /usr/local/bin/entrypoint.sh +RUN chmod 755 /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/images/layered/Containerfile b/images/layered/Containerfile index 18511c61..c3326ddd 100644 --- a/images/layered/Containerfile +++ b/images/layered/Containerfile @@ -47,7 +47,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod ugo+rx /usr/local/bin/entrypoint.sh +RUN chmod 755 /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/images/production/Containerfile b/images/production/Containerfile index 983dc2ea..7ad4089d 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -82,6 +82,7 @@ RUN useradd -ms /bin/bash frappe \ COPY resources/core/nginx/nginx-template.conf /templates/nginx/frappe.conf.template COPY resources/core/nginx/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh COPY resources/core/nginx/security_headers.conf /etc/nginx/snippets/security_headers.conf +RUN chmod 755 /usr/local/bin/nginx-entrypoint.sh FROM base AS build @@ -153,7 +154,7 @@ VOLUME [ \ USER root # This entrypoint script link build assets of the image to the mounted sites volume at container initialization COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh -RUN chmod +x /usr/local/bin/entrypoint.sh +RUN chmod 755 /usr/local/bin/entrypoint.sh USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] From d07d805436e4b55ead896c7931902abc084e028a Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 12 May 2026 19:20:13 +0000 Subject: [PATCH 14/27] chore: Update example.env --- example.env | 2 +- pwd.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example.env b/example.env index 899486dd..eadd9b77 100644 --- a/example.env +++ b/example.env @@ -1,6 +1,6 @@ # Reference: https://github.com/frappe/frappe_docker/blob/main/docs/02-setup/04-env-variables.md -ERPNEXT_VERSION=v16.17.0 +ERPNEXT_VERSION=v16.18.0 DB_PASSWORD=123 diff --git a/pwd.yml b/pwd.yml index 6997042d..bcef3e1d 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,6 +1,6 @@ services: backend: - image: frappe/erpnext:v16.17.0 + image: frappe/erpnext:v16.18.0 networks: - frappe_network deploy: @@ -16,7 +16,7 @@ services: MARIADB_ROOT_PASSWORD: admin configurator: - image: frappe/erpnext:v16.17.0 + image: frappe/erpnext:v16.18.0 networks: - frappe_network deploy: @@ -45,7 +45,7 @@ services: - logs:/home/frappe/frappe-bench/logs create-site: - image: frappe/erpnext:v16.17.0 + image: frappe/erpnext:v16.18.0 networks: - frappe_network deploy: @@ -101,7 +101,7 @@ services: - db-data:/var/lib/mysql frontend: - image: frappe/erpnext:v16.17.0 + image: frappe/erpnext:v16.18.0 networks: - frappe_network depends_on: @@ -127,7 +127,7 @@ services: - "8080:8080" queue-long: - image: frappe/erpnext:v16.17.0 + image: frappe/erpnext:v16.18.0 networks: - frappe_network deploy: @@ -146,7 +146,7 @@ services: FRAPPE_REDIS_QUEUE: redis://redis-queue:6379 queue-short: - image: frappe/erpnext:v16.17.0 + image: frappe/erpnext:v16.18.0 networks: - frappe_network deploy: @@ -183,7 +183,7 @@ services: condition: on-failure scheduler: - image: frappe/erpnext:v16.17.0 + image: frappe/erpnext:v16.18.0 networks: - frappe_network deploy: @@ -197,7 +197,7 @@ services: - logs:/home/frappe/frappe-bench/logs websocket: - image: frappe/erpnext:v16.17.0 + image: frappe/erpnext:v16.18.0 networks: - frappe_network deploy: From cec5b935460eb09a85fb3c32cba798a6fcf88845 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 13 May 2026 10:46:13 +0000 Subject: [PATCH 15/27] chore: Update example.env --- example.env | 2 +- pwd.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example.env b/example.env index eadd9b77..72ab12cf 100644 --- a/example.env +++ b/example.env @@ -1,6 +1,6 @@ # Reference: https://github.com/frappe/frappe_docker/blob/main/docs/02-setup/04-env-variables.md -ERPNEXT_VERSION=v16.18.0 +ERPNEXT_VERSION=v16.18.1 DB_PASSWORD=123 diff --git a/pwd.yml b/pwd.yml index bcef3e1d..c0385d04 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,6 +1,6 @@ services: backend: - image: frappe/erpnext:v16.18.0 + image: frappe/erpnext:v16.18.1 networks: - frappe_network deploy: @@ -16,7 +16,7 @@ services: MARIADB_ROOT_PASSWORD: admin configurator: - image: frappe/erpnext:v16.18.0 + image: frappe/erpnext:v16.18.1 networks: - frappe_network deploy: @@ -45,7 +45,7 @@ services: - logs:/home/frappe/frappe-bench/logs create-site: - image: frappe/erpnext:v16.18.0 + image: frappe/erpnext:v16.18.1 networks: - frappe_network deploy: @@ -101,7 +101,7 @@ services: - db-data:/var/lib/mysql frontend: - image: frappe/erpnext:v16.18.0 + image: frappe/erpnext:v16.18.1 networks: - frappe_network depends_on: @@ -127,7 +127,7 @@ services: - "8080:8080" queue-long: - image: frappe/erpnext:v16.18.0 + image: frappe/erpnext:v16.18.1 networks: - frappe_network deploy: @@ -146,7 +146,7 @@ services: FRAPPE_REDIS_QUEUE: redis://redis-queue:6379 queue-short: - image: frappe/erpnext:v16.18.0 + image: frappe/erpnext:v16.18.1 networks: - frappe_network deploy: @@ -183,7 +183,7 @@ services: condition: on-failure scheduler: - image: frappe/erpnext:v16.18.0 + image: frappe/erpnext:v16.18.1 networks: - frappe_network deploy: @@ -197,7 +197,7 @@ services: - logs:/home/frappe/frappe-bench/logs websocket: - image: frappe/erpnext:v16.18.0 + image: frappe/erpnext:v16.18.1 networks: - frappe_network deploy: From eeb487e5e62f1b2d9314849a53796727dbd8e788 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 14 May 2026 06:04:47 +0000 Subject: [PATCH 16/27] chore: Update example.env --- example.env | 2 +- pwd.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example.env b/example.env index 72ab12cf..f9662581 100644 --- a/example.env +++ b/example.env @@ -1,6 +1,6 @@ # Reference: https://github.com/frappe/frappe_docker/blob/main/docs/02-setup/04-env-variables.md -ERPNEXT_VERSION=v16.18.1 +ERPNEXT_VERSION=v16.18.2 DB_PASSWORD=123 diff --git a/pwd.yml b/pwd.yml index c0385d04..0c478ceb 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,6 +1,6 @@ services: backend: - image: frappe/erpnext:v16.18.1 + image: frappe/erpnext:v16.18.2 networks: - frappe_network deploy: @@ -16,7 +16,7 @@ services: MARIADB_ROOT_PASSWORD: admin configurator: - image: frappe/erpnext:v16.18.1 + image: frappe/erpnext:v16.18.2 networks: - frappe_network deploy: @@ -45,7 +45,7 @@ services: - logs:/home/frappe/frappe-bench/logs create-site: - image: frappe/erpnext:v16.18.1 + image: frappe/erpnext:v16.18.2 networks: - frappe_network deploy: @@ -101,7 +101,7 @@ services: - db-data:/var/lib/mysql frontend: - image: frappe/erpnext:v16.18.1 + image: frappe/erpnext:v16.18.2 networks: - frappe_network depends_on: @@ -127,7 +127,7 @@ services: - "8080:8080" queue-long: - image: frappe/erpnext:v16.18.1 + image: frappe/erpnext:v16.18.2 networks: - frappe_network deploy: @@ -146,7 +146,7 @@ services: FRAPPE_REDIS_QUEUE: redis://redis-queue:6379 queue-short: - image: frappe/erpnext:v16.18.1 + image: frappe/erpnext:v16.18.2 networks: - frappe_network deploy: @@ -183,7 +183,7 @@ services: condition: on-failure scheduler: - image: frappe/erpnext:v16.18.1 + image: frappe/erpnext:v16.18.2 networks: - frappe_network deploy: @@ -197,7 +197,7 @@ services: - logs:/home/frappe/frappe-bench/logs websocket: - image: frappe/erpnext:v16.18.1 + image: frappe/erpnext:v16.18.2 networks: - frappe_network deploy: From e31bcceac171f5b5823130a3524fb1f7796c61f3 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 14 May 2026 10:07:39 +0000 Subject: [PATCH 17/27] chore: Update example.env --- example.env | 2 +- pwd.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example.env b/example.env index f9662581..a8db8d79 100644 --- a/example.env +++ b/example.env @@ -1,6 +1,6 @@ # Reference: https://github.com/frappe/frappe_docker/blob/main/docs/02-setup/04-env-variables.md -ERPNEXT_VERSION=v16.18.2 +ERPNEXT_VERSION=v16.18.3 DB_PASSWORD=123 diff --git a/pwd.yml b/pwd.yml index 0c478ceb..5479dba6 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,6 +1,6 @@ services: backend: - image: frappe/erpnext:v16.18.2 + image: frappe/erpnext:v16.18.3 networks: - frappe_network deploy: @@ -16,7 +16,7 @@ services: MARIADB_ROOT_PASSWORD: admin configurator: - image: frappe/erpnext:v16.18.2 + image: frappe/erpnext:v16.18.3 networks: - frappe_network deploy: @@ -45,7 +45,7 @@ services: - logs:/home/frappe/frappe-bench/logs create-site: - image: frappe/erpnext:v16.18.2 + image: frappe/erpnext:v16.18.3 networks: - frappe_network deploy: @@ -101,7 +101,7 @@ services: - db-data:/var/lib/mysql frontend: - image: frappe/erpnext:v16.18.2 + image: frappe/erpnext:v16.18.3 networks: - frappe_network depends_on: @@ -127,7 +127,7 @@ services: - "8080:8080" queue-long: - image: frappe/erpnext:v16.18.2 + image: frappe/erpnext:v16.18.3 networks: - frappe_network deploy: @@ -146,7 +146,7 @@ services: FRAPPE_REDIS_QUEUE: redis://redis-queue:6379 queue-short: - image: frappe/erpnext:v16.18.2 + image: frappe/erpnext:v16.18.3 networks: - frappe_network deploy: @@ -183,7 +183,7 @@ services: condition: on-failure scheduler: - image: frappe/erpnext:v16.18.2 + image: frappe/erpnext:v16.18.3 networks: - frappe_network deploy: @@ -197,7 +197,7 @@ services: - logs:/home/frappe/frappe-bench/logs websocket: - image: frappe/erpnext:v16.18.2 + image: frappe/erpnext:v16.18.3 networks: - frappe_network deploy: From aafc25bc76339ea84e89c821d28fac458dc41c9c Mon Sep 17 00:00:00 2001 From: Harshith Ashok Date: Sun, 17 May 2026 07:45:04 +0530 Subject: [PATCH 18/27] docs(contributing): add docker dev guide --- README.md | 1 + docs/10-development/01-setup.md | 252 ++++++++++++++++++++++++++++++++ 2 files changed, 253 insertions(+) create mode 100644 docs/10-development/01-setup.md diff --git a/README.md b/README.md index 769efef7..ac8479a4 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ The full `frappe_docker` documentation is available in [`docs/`](docs/) and publ - **Running in production:** [Production docs](docs/03-production/) - **Operating a deployment:** [Operations docs](docs/04-operations/) - **Development workflows:** [Development](docs/05-development/01-development.md) +- **Docker Container Setup for Development** [Docker Setup](docs/10-development/01-setup.md) - **FAQ:** [Frequently Asked Questions](https://github.com/frappe/frappe_docker/wiki/Frequently-Asked-Questions) ## Prerequisites diff --git a/docs/10-development/01-setup.md b/docs/10-development/01-setup.md new file mode 100644 index 00000000..3577acb3 --- /dev/null +++ b/docs/10-development/01-setup.md @@ -0,0 +1,252 @@ +--- +title: Docker Development Setup +--- + +# Docker Development Setup + +A complete guide for setting up a Frappe development environment on x86 and ARM based computers running UNIX based OSes by running containers directly and working inside them via the terminal. No VS Code Dev Containers extension needed. + +--- + +## Prerequisites + +- **Docker Desktop** (Applicable only for MacOS) — [download here](https://www.docker.com/products/docker-desktop/) +- **Git** +- A terminal (iTerm2, or the built-in Terminal.app) + +### Docker Desktop Resource Allocation (Critical) + +1. Open Docker Desktop → **Settings** → **Resources** +2. **Memory**: at least **6 GB** (8 GB recommended) +3. **CPUs**: at least **4** +4. **Disk image size**: at least **60 GB** +5. Click **Apply & Restart** + +--- + +## Step 1 — Set ARM64 as Default Platform (ONLY FOR ARM BASED SYSTEMS) + +```bash +export DOCKER_DEFAULT_PLATFORM=linux/arm64 +``` + +Make it permanent: + +```bash +echo 'export DOCKER_DEFAULT_PLATFORM=linux/arm64' >> ~/.zshrc +source ~/.zshrc +``` + +--- + +## Step 2 — Clone the Repo + +```bash +git clone https://github.com/frappe/frappe_docker.git +cd frappe_docker +``` + +--- + +## Step 3 — Set Up the Dev Container Config + +The `devcontainer-example/` folder contains a ready-made `docker-compose.yml` for development. Copy it into place: + +```bash +cp -R devcontainer-example .devcontainer +``` + +This gives you `.devcontainer/docker-compose.yml` which defines all the services you need: + +- `frappe` — the main development container (Debian, Python, Node, bench) +- `mariadb` — the database +- `redis-cache` — cache layer +- `redis-queue` — background job queue + +--- + +## Step 4 — Add ARM64 Platform to All Services + +Open `.devcontainer/docker-compose.yml` in any editor and add `platform: linux/arm64` to every service block. It should look like this: + +```yaml +services: + frappe: + image: frappe/bench:latest + platform: linux/arm64 + # ... rest of config + + mariadb: + image: mariadb:10.8 + platform: linux/arm64 + # ... + + redis-cache: + image: redis:6.2-alpine + platform: linux/arm64 + # ... + + redis-queue: + image: redis:6.2-alpine + platform: linux/arm64 + # ... +``` + +> Without this, Docker may pull amd64 images and emulate them via Rosetta — things will work but be noticeably slower. +> Ensure mariadb version is set to `10.8` since Frappe Framework is not yet tested for the default version `11.8` + +--- + +## Step 5 — Start the Containers + +```bash +docker compose -f .devcontainer/docker-compose.yml up -d +``` + +Verify everything is running: + +```bash +docker compose -f .devcontainer/docker-compose.yml ps +``` + +You should see all services with status `Up`. + +In case you get any errors along the lines of, + +```log +Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint devcontainer-frappe-1 (44b337b68d100e914fab0ce446ed08d791cc73aaffb05cf47c347c00ff88f567): Bind for 0.0.0.0:9001 failed: port is already allocated +``` + +- Check if the port is being used by another service with `lsof -i :PORT` + > Usually on MacOS ports 8000 and 9000 are usually reserved for system use +- Go to line 60 and 61 under the `frappe` service and change the ports + +Eg: + +``` +ports: + - 8001-8005:8001-8005 + - 9002-9005:9002-9005 +``` + +--- + +## Step 6 — Enter the Development Container + +```bash +docker exec -e "TERM=xterm-256color" -w /workspace/development -it devcontainer-frappe-1 bash +``` + +> The container name is typically `devcontainer-frappe-1`. If it differs, check with `docker ps` and use the actual name shown. + +You are now inside the container as the `frappe` user. All subsequent commands in this guide run **inside the container** unless noted otherwise. + +--- + +## Step 7 — Initialize a Bench + +```bash +bench init --skip-redis-config-generation --frappe-branch version-16 frappe-bench +cd frappe-bench +``` + +Use `version-16` for the latest stable release. Swap for `version-15` if needed. + +This creates: + +``` +development/ +└── frappe-bench/ + ├── apps/ ← All Frappe apps live here + ├── sites/ ← Your sites (databases, uploaded files) + ├── env/ ← Python virtualenv + ├── logs/ + └── Procfile +``` + +--- + +## Step 8 — Configure Service Hosts + +Tell bench to use the containerised services (not localhost): + +```bash +bench set-config -g db_host mariadb +bench set-config -g redis_cache redis://redis-cache:6379 +bench set-config -g redis_queue redis://redis-queue:6379 +bench set-config -g redis_socketio redis://redis-queue:6379 +``` + +If any command fails, edit the file directly: + +```bash +nano sites/common_site_config.json +``` + +Paste: + +```json +{ + "db_host": "mariadb", + "redis_cache": "redis://redis-cache:6379", + "redis_queue": "redis://redis-queue:6379", + "redis_socketio": "redis://redis-queue:6379" +} +``` + +--- + +## Step 9 — Fix the Procfile + +Redis runs in separate containers, so remove it from Honcho's Procfile to avoid conflicts: + +```bash +sudo sed -i '/redis/d' ./Procfile +``` + +--- + +## Step 10 — Create a Site + +```bash +bench new-site \ + --db-root-password 123 \ + --admin-password admin \ + --mariadb-user-host-login-scope=% \ + development.localhost +``` + +- MariaDB root password: `123` (set in the docker-compose defaults) +- Admin password: `admin` (change this to whatever you want) +- Site name **must end in `.localhost`** + +--- + +## Step 11 — Enable Developer Mode + +```bash +bench --site development.localhost set-config developer_mode 1 +bench --site development.localhost clear-cache +``` + +--- + +## Step 12 — Add development.localhost to /etc/hosts (on your Mac) + +Run this **on your Mac** (not inside the container): + +```bash +echo "127.0.0.1 development.localhost" | sudo tee -a /etc/hosts +``` + +--- + +## Step 13 — Start the Dev Server + +```bash +bench build # (optional) +bench start +``` + +Open your browser at **http://development.localhost:8000** +Login: `Administrator` / `admin` From cfd280eff3aac9cc2403e2baab0d117f4575de92 Mon Sep 17 00:00:00 2001 From: Harshith Ashok <50227707+harshith-ashok@users.noreply.github.com> Date: Sun, 17 May 2026 09:21:54 +0530 Subject: [PATCH 19/27] Clarify mariadb version requirement in setup Add note about mariadb version for Frappe Framework. --- docs/10-development/01-setup.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/10-development/01-setup.md b/docs/10-development/01-setup.md index 3577acb3..485e7387 100644 --- a/docs/10-development/01-setup.md +++ b/docs/10-development/01-setup.md @@ -93,8 +93,7 @@ services: ``` > Without this, Docker may pull amd64 images and emulate them via Rosetta — things will work but be noticeably slower. -> Ensure mariadb version is set to `10.8` since Frappe Framework is not yet tested for the default version `11.8` - +> --- ## Step 5 — Start the Containers From 5097115d08db19511c829beeb47517022dd72546 Mon Sep 17 00:00:00 2001 From: Harshith Ashok <50227707+harshith-ashok@users.noreply.github.com> Date: Sun, 17 May 2026 09:26:23 +0530 Subject: [PATCH 20/27] Update setup.md with mariadb version change advice Added note about mariadb version causing errors. This addition is based on Issue #1908 which I too faced while testing and setting it up myself. --- docs/10-development/01-setup.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/10-development/01-setup.md b/docs/10-development/01-setup.md index 485e7387..567cb558 100644 --- a/docs/10-development/01-setup.md +++ b/docs/10-development/01-setup.md @@ -93,7 +93,8 @@ services: ``` > Without this, Docker may pull amd64 images and emulate them via Rosetta — things will work but be noticeably slower. -> +> Few users did note that the version of mariadb causes an error while creating a new site so in case you do encouter it change the version from `11.8` to `10.8` + --- ## Step 5 — Start the Containers From 2c44349a0f16ae97bf45053b61ea5851352444d1 Mon Sep 17 00:00:00 2001 From: dandax123 Date: Mon, 27 Apr 2026 17:39:45 +0200 Subject: [PATCH 21/27] feat: configure gunicorn with env variables --- compose.yaml | 4 ++++ docs/02-setup/04-env-variables.md | 10 ++++++++++ example.env | 11 +++++++++++ images/custom/Containerfile | 16 ++++------------ images/layered/Containerfile | 16 ++++------------ images/production/Containerfile | 16 ++++------------ resources/core/start.sh | 20 ++++++++++++++++++++ 7 files changed, 57 insertions(+), 36 deletions(-) create mode 100755 resources/core/start.sh diff --git a/compose.yaml b/compose.yaml index 5920e6d3..d69e4d19 100644 --- a/compose.yaml +++ b/compose.yaml @@ -46,6 +46,10 @@ services: backend: <<: *backend_defaults platform: linux/amd64 + environment: + GUNICORN_THREADS: ${GUNICORN_THREADS:-4} + GUNICORN_WORKERS: ${GUNICORN_WORKERS:-2} + GUNICORN_TIMEOUT: ${GUNICORN_TIMEOUT:-120} frontend: <<: *customizable_image diff --git a/docs/02-setup/04-env-variables.md b/docs/02-setup/04-env-variables.md index 561ee6d2..069e3231 100644 --- a/docs/02-setup/04-env-variables.md +++ b/docs/02-setup/04-env-variables.md @@ -122,6 +122,16 @@ If your site is named `example.com` and you access it via that domain, no need t --- +## Backend (Gunicorn) Configuration + +| Variable | Purpose | Default | When to Set / Allowed Values | +| :----------------- | :------------------------------------------------------------- | :------ | :------------------------------------------------------------------------------- | +| `GUNICORN_WORKERS` | Number of worker processes handling web requests | `2` | Scale up for multi-core CPUs. Formula: `(2 x Cores) + 1` | +| `GUNICORN_THREADS` | Number of concurrent threads per worker process | `4` | Increase to handle more simultaneous I/O-bound requests without high memory cost | +| `GUNICORN_TIMEOUT` | Max time a worker can spend on a single request before restart | `120` | Increase if long-running reports or data imports time out | + +--- + ## Frontend Nginx Configuration (inside the frontend container) | Variable | Purpose | Default | Allowed Values | diff --git a/example.env b/example.env index a8db8d79..893c21e3 100644 --- a/example.env +++ b/example.env @@ -15,6 +15,17 @@ DB_PORT= REDIS_CACHE= REDIS_QUEUE= + +# The number of threads per Gunicorn worker process for handling concurrent requests. +GUNICORN_THREADS=4 + +# The number of worker processes for handling requests. +# A typical formula is (2 x number of CPU cores) + 1. +GUNICORN_WORKERS=2 + +# Workers exceeding this timeout (in seconds) will be killed and restarted. +GUNICORN_TIMEOUT=120 + # Only with HTTPS override LETSENCRYPT_EMAIL=mail@example.com diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 9528688b..70e4317b 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -165,18 +165,10 @@ USER root COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod 755 /usr/local/bin/entrypoint.sh +COPY resources/core/start.sh /usr/local/bin/start.sh +RUN chmod 755 /usr/local/bin/start.sh + USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] -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" \ -] +CMD ["start.sh"] diff --git a/images/layered/Containerfile b/images/layered/Containerfile index c3326ddd..ec32cbdb 100644 --- a/images/layered/Containerfile +++ b/images/layered/Containerfile @@ -49,18 +49,10 @@ USER root COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod 755 /usr/local/bin/entrypoint.sh +COPY resources/core/start.sh /usr/local/bin/start.sh +RUN chmod 755 /usr/local/bin/start.sh + USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] -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" \ -] +CMD ["start.sh"] diff --git a/images/production/Containerfile b/images/production/Containerfile index 7ad4089d..b30dd957 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -156,18 +156,10 @@ USER root COPY resources/core/main-entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod 755 /usr/local/bin/entrypoint.sh +COPY resources/core/start.sh /usr/local/bin/start.sh +RUN chmod 755 /usr/local/bin/start.sh + USER frappe ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] -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" \ -] +CMD ["start.sh"] diff --git a/resources/core/start.sh b/resources/core/start.sh new file mode 100755 index 00000000..2ac1a388 --- /dev/null +++ b/resources/core/start.sh @@ -0,0 +1,20 @@ +#!/bin/bash +set -e + +#Gunicorn defaults +GUNICORN_THREADS=${GUNICORN_THREADS:-4} +GUNICORN_WORKERS=${GUNICORN_WORKERS:-2} +GUNICORN_TIMEOUT=${GUNICORN_TIMEOUT:-120} + +echo "Booting Gunicorn with $GUNICORN_WORKERS workers and $GUNICORN_THREADS threads..." + +exec /home/frappe/frappe-bench/env/bin/gunicorn \ + --chdir=/home/frappe/frappe-bench/sites \ + --bind=0.0.0.0:8000 \ + --threads="$GUNICORN_THREADS" \ + --workers="$GUNICORN_WORKERS" \ + --worker-class=gthread \ + --worker-tmp-dir=/dev/shm \ + --timeout="$GUNICORN_TIMEOUT" \ + --preload \ + frappe.app:application From 6e1117bbbc2cdc900df4a855321f67e96bd712cb Mon Sep 17 00:00:00 2001 From: Harshith Ashok Date: Tue, 19 May 2026 00:22:22 +0530 Subject: [PATCH 22/27] removed old file and replaced it under development --- README.md | 1 - .../01-setup.md => 05-development/04-alternate-setup.md} | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) rename docs/{10-development/01-setup.md => 05-development/04-alternate-setup.md} (95%) diff --git a/README.md b/README.md index ac8479a4..769efef7 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,6 @@ The full `frappe_docker` documentation is available in [`docs/`](docs/) and publ - **Running in production:** [Production docs](docs/03-production/) - **Operating a deployment:** [Operations docs](docs/04-operations/) - **Development workflows:** [Development](docs/05-development/01-development.md) -- **Docker Container Setup for Development** [Docker Setup](docs/10-development/01-setup.md) - **FAQ:** [Frequently Asked Questions](https://github.com/frappe/frappe_docker/wiki/Frequently-Asked-Questions) ## Prerequisites diff --git a/docs/10-development/01-setup.md b/docs/05-development/04-alternate-setup.md similarity index 95% rename from docs/10-development/01-setup.md rename to docs/05-development/04-alternate-setup.md index 567cb558..29de8669 100644 --- a/docs/10-development/01-setup.md +++ b/docs/05-development/04-alternate-setup.md @@ -6,6 +6,9 @@ title: Docker Development Setup A complete guide for setting up a Frappe development environment on x86 and ARM based computers running UNIX based OSes by running containers directly and working inside them via the terminal. No VS Code Dev Containers extension needed. +> [!IMPORTANT] +> Devcontainers are the intended development setup for Frappe Framework but in case you don't want to use that method follow these instructions to use the CLI directly instead + --- ## Prerequisites @@ -93,7 +96,7 @@ services: ``` > Without this, Docker may pull amd64 images and emulate them via Rosetta — things will work but be noticeably slower. -> Few users did note that the version of mariadb causes an error while creating a new site so in case you do encouter it change the version from `11.8` to `10.8` +> Ensure mariadb version is set to `10.8` since Frappe Framework is not yet tested for the default version `11.8` --- From 48764b21c18ede53c311ea1ec60a3ff4783466dc Mon Sep 17 00:00:00 2001 From: Harshith Ashok <50227707+harshith-ashok@users.noreply.github.com> Date: Tue, 19 May 2026 19:55:03 +0530 Subject: [PATCH 23/27] remove mariadb version for Frappe Framework setup --- docs/05-development/04-alternate-setup.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/05-development/04-alternate-setup.md b/docs/05-development/04-alternate-setup.md index 29de8669..d2027479 100644 --- a/docs/05-development/04-alternate-setup.md +++ b/docs/05-development/04-alternate-setup.md @@ -96,7 +96,6 @@ services: ``` > Without this, Docker may pull amd64 images and emulate them via Rosetta — things will work but be noticeably slower. -> Ensure mariadb version is set to `10.8` since Frappe Framework is not yet tested for the default version `11.8` --- From 38ca8d2316f68d9d2a5adc07f554d6316a8f7397 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 20 May 2026 04:40:07 +0000 Subject: [PATCH 24/27] chore: Update example.env --- example.env | 2 +- pwd.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example.env b/example.env index 893c21e3..e5ea9d98 100644 --- a/example.env +++ b/example.env @@ -1,6 +1,6 @@ # Reference: https://github.com/frappe/frappe_docker/blob/main/docs/02-setup/04-env-variables.md -ERPNEXT_VERSION=v16.18.3 +ERPNEXT_VERSION=v16.19.0 DB_PASSWORD=123 diff --git a/pwd.yml b/pwd.yml index 5479dba6..7fc750cb 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,6 +1,6 @@ services: backend: - image: frappe/erpnext:v16.18.3 + image: frappe/erpnext:v16.19.0 networks: - frappe_network deploy: @@ -16,7 +16,7 @@ services: MARIADB_ROOT_PASSWORD: admin configurator: - image: frappe/erpnext:v16.18.3 + image: frappe/erpnext:v16.19.0 networks: - frappe_network deploy: @@ -45,7 +45,7 @@ services: - logs:/home/frappe/frappe-bench/logs create-site: - image: frappe/erpnext:v16.18.3 + image: frappe/erpnext:v16.19.0 networks: - frappe_network deploy: @@ -101,7 +101,7 @@ services: - db-data:/var/lib/mysql frontend: - image: frappe/erpnext:v16.18.3 + image: frappe/erpnext:v16.19.0 networks: - frappe_network depends_on: @@ -127,7 +127,7 @@ services: - "8080:8080" queue-long: - image: frappe/erpnext:v16.18.3 + image: frappe/erpnext:v16.19.0 networks: - frappe_network deploy: @@ -146,7 +146,7 @@ services: FRAPPE_REDIS_QUEUE: redis://redis-queue:6379 queue-short: - image: frappe/erpnext:v16.18.3 + image: frappe/erpnext:v16.19.0 networks: - frappe_network deploy: @@ -183,7 +183,7 @@ services: condition: on-failure scheduler: - image: frappe/erpnext:v16.18.3 + image: frappe/erpnext:v16.19.0 networks: - frappe_network deploy: @@ -197,7 +197,7 @@ services: - logs:/home/frappe/frappe-bench/logs websocket: - image: frappe/erpnext:v16.18.3 + image: frappe/erpnext:v16.19.0 networks: - frappe_network deploy: From 640b761a3ddc6b46c049813b02a8e151f865ff29 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 20 May 2026 07:50:29 +0000 Subject: [PATCH 25/27] chore: Update example.env --- example.env | 2 +- pwd.yml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/example.env b/example.env index e5ea9d98..3704b8f0 100644 --- a/example.env +++ b/example.env @@ -1,6 +1,6 @@ # Reference: https://github.com/frappe/frappe_docker/blob/main/docs/02-setup/04-env-variables.md -ERPNEXT_VERSION=v16.19.0 +ERPNEXT_VERSION=v16.19.1 DB_PASSWORD=123 diff --git a/pwd.yml b/pwd.yml index 7fc750cb..1fcde0cc 100644 --- a/pwd.yml +++ b/pwd.yml @@ -1,6 +1,6 @@ services: backend: - image: frappe/erpnext:v16.19.0 + image: frappe/erpnext:v16.19.1 networks: - frappe_network deploy: @@ -16,7 +16,7 @@ services: MARIADB_ROOT_PASSWORD: admin configurator: - image: frappe/erpnext:v16.19.0 + image: frappe/erpnext:v16.19.1 networks: - frappe_network deploy: @@ -45,7 +45,7 @@ services: - logs:/home/frappe/frappe-bench/logs create-site: - image: frappe/erpnext:v16.19.0 + image: frappe/erpnext:v16.19.1 networks: - frappe_network deploy: @@ -101,7 +101,7 @@ services: - db-data:/var/lib/mysql frontend: - image: frappe/erpnext:v16.19.0 + image: frappe/erpnext:v16.19.1 networks: - frappe_network depends_on: @@ -127,7 +127,7 @@ services: - "8080:8080" queue-long: - image: frappe/erpnext:v16.19.0 + image: frappe/erpnext:v16.19.1 networks: - frappe_network deploy: @@ -146,7 +146,7 @@ services: FRAPPE_REDIS_QUEUE: redis://redis-queue:6379 queue-short: - image: frappe/erpnext:v16.19.0 + image: frappe/erpnext:v16.19.1 networks: - frappe_network deploy: @@ -183,7 +183,7 @@ services: condition: on-failure scheduler: - image: frappe/erpnext:v16.19.0 + image: frappe/erpnext:v16.19.1 networks: - frappe_network deploy: @@ -197,7 +197,7 @@ services: - logs:/home/frappe/frappe-bench/logs websocket: - image: frappe/erpnext:v16.19.0 + image: frappe/erpnext:v16.19.1 networks: - frappe_network deploy: From 33f24b2645214ff0d6320083ec69f873c5cd1ff5 Mon Sep 17 00:00:00 2001 From: Daniel Radl Date: Thu, 21 May 2026 14:54:46 +0200 Subject: [PATCH 26/27] feat(actions):add exept issue label --- .github/workflows/stale.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 8849bfea..fed39a73 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -16,3 +16,4 @@ jobs: stale-pr-message: This PR has been automatically marked as stale. You have a week to explain why you believe this is an error. stale-issue-label: no-issue-activity stale-pr-label: no-pr-activity + exempt-issue-labels: keep-open From 08d765c41394d22e22bf593752a03aab1f92ea5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 13:01:31 +0000 Subject: [PATCH 27/27] chore(deps): bump postcss from 8.5.8 to 8.5.15 in /docs Bumps [postcss](https://github.com/postcss/postcss) from 8.5.8 to 8.5.15. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.8...8.5.15) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.15 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- docs/pnpm-lock.yaml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 2e0b4ee7..c141e1e1 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -15,7 +15,7 @@ importers: devDependencies: vitepress: specifier: 2.0.0-alpha.16 - version: 2.0.0-alpha.16(postcss@8.5.8) + version: 2.0.0-alpha.16(postcss@8.5.15) vitepress-sidebar: specifier: 1.33.1 version: 1.33.1 @@ -408,6 +408,7 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@vitejs/plugin-vue@6.0.5': resolution: {integrity: sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg==} @@ -707,8 +708,8 @@ packages: minisearch@7.2.0: resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -739,8 +740,8 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - postcss@8.5.8: - resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} property-information@7.1.0: @@ -1214,7 +1215,7 @@ snapshots: '@vue/shared': 3.5.30 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.8 + postcss: 8.5.15 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.30': @@ -1491,7 +1492,7 @@ snapshots: minisearch@7.2.0: {} - nanoid@3.3.11: {} + nanoid@3.3.12: {} oniguruma-parser@0.12.1: {} @@ -1516,9 +1517,9 @@ snapshots: picomatch@4.0.4: {} - postcss@8.5.8: + postcss@8.5.15: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.12 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -1671,7 +1672,7 @@ snapshots: esbuild: 0.27.4 fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 - postcss: 8.5.8 + postcss: 8.5.15 rollup: 4.59.0 tinyglobby: 0.2.15 optionalDependencies: @@ -1683,7 +1684,7 @@ snapshots: gray-matter: 4.0.3 qsu: 1.10.4 - vitepress@2.0.0-alpha.16(postcss@8.5.8): + vitepress@2.0.0-alpha.16(postcss@8.5.15): dependencies: '@docsearch/css': 4.6.0 '@docsearch/js': 4.6.0 @@ -1705,7 +1706,7 @@ snapshots: vite: 7.3.2 vue: 3.5.30 optionalDependencies: - postcss: 8.5.8 + postcss: 8.5.15 transitivePeerDependencies: - '@types/node' - async-validator