diff --git a/.github/workflows/build_stable.yml b/.github/workflows/build_stable.yml index e842a3dc..f33832c1 100644 --- a/.github/workflows/build_stable.yml +++ b/.github/workflows/build_stable.yml @@ -36,6 +36,8 @@ jobs: repo: erpnext version: "13" push: ${{ github.repository == 'frappe/frappe_docker' && github.event_name != 'pull_request' }} + python_version: 3.9.17 + node_version: 14.21.3 secrets: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} @@ -46,6 +48,8 @@ jobs: repo: erpnext version: "14" push: ${{ github.repository == 'frappe/frappe_docker' && github.event_name != 'pull_request' }} + python_version: 3.10.12 + node_version: 16.20.1 secrets: DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/docker-build-push.yml b/.github/workflows/docker-build-push.yml index 138de9fe..2bdb363d 100644 --- a/.github/workflows/docker-build-push.yml +++ b/.github/workflows/docker-build-push.yml @@ -14,6 +14,14 @@ on: push: required: true type: boolean + python_version: + required: true + type: string + description: Python Version + node_version: + required: true + type: string + description: NodeJS Version secrets: DOCKERHUB_USERNAME: required: true @@ -42,6 +50,11 @@ jobs: - name: Get latest versions run: python3 ./.github/scripts/get_latest_tags.py --repo ${{ inputs.repo }} --version ${{ inputs.version }} + - name: Set build args + run: | + echo "PYTHON_VERSION=${{ inputs.python_version }}" >> "$GITHUB_ENV" + echo "NODE_VERSION=${{ inputs.node_version }}" >> "$GITHUB_ENV" + - name: Build uses: docker/bake-action@v3.1.0 with: diff --git a/docker-bake.hcl b/docker-bake.hcl index 9d542136..568e0668 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -5,6 +5,13 @@ variable "REGISTRY_USER" { default = "frappe" } +variable PYTHON_VERSION { + default = "3.11.4" +} +variable NODE_VERSION { + default = "18.16.1" +} + variable "FRAPPE_VERSION" { default = "develop" } @@ -65,8 +72,8 @@ target "default-args" { BENCH_REPO = "${BENCH_REPO}" FRAPPE_BRANCH = "${FRAPPE_VERSION}" ERPNEXT_BRANCH = "${ERPNEXT_VERSION}" - PYTHON_VERSION = can(regex("v13", "${ERPNEXT_VERSION}")) ? "3.9.9" : "3.10.5" - NODE_VERSION = can(regex("v13", "${FRAPPE_VERSION}")) ? "14.19.3" : "16.18.0" + PYTHON_VERSION = "${PYTHON_VERSION}" + NODE_VERSION = "${NODE_VERSION}" } } diff --git a/images/bench/Dockerfile b/images/bench/Dockerfile index 40cbbaaf..92470bc7 100644 --- a/images/bench/Dockerfile +++ b/images/bench/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bullseye-slim as bench +FROM debian:bookworm-slim as bench LABEL author=frappé @@ -75,10 +75,11 @@ RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ && dpkg-reconfigure --frontend=noninteractive locales # Detect arch and install wkhtmltopdf -ENV WKHTMLTOPDF_VERSION 0.12.6-1 +ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 +ARG WKHTMLTOPDF_DISTRO=bookworm RUN if [ "$(uname -m)" = "aarch64" ]; then export ARCH=arm64; fi \ && if [ "$(uname -m)" = "x86_64" ]; then export ARCH=amd64; fi \ - && downloaded_file=wkhtmltox_$WKHTMLTOPDF_VERSION.buster_${ARCH}.deb \ + && downloaded_file=wkhtmltox_${WKHTMLTOPDF_VERSION}.${WKHTMLTOPDF_DISTRO}_${ARCH}.deb \ && wget -q https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && dpkg -i $downloaded_file \ && rm $downloaded_file diff --git a/images/custom/Containerfile b/images/custom/Containerfile index 3a16f952..e9200833 100644 --- a/images/custom/Containerfile +++ b/images/custom/Containerfile @@ -1,11 +1,13 @@ -ARG PYTHON_VERSION=3.10.5 -FROM python:${PYTHON_VERSION}-slim-bullseye AS base +ARG PYTHON_VERSION=3.11.4 +ARG DEBIAN_BASE=bookworm +FROM python:${PYTHON_VERSION}-slim-${DEBIAN_BASE} AS base COPY resources/nginx-template.conf /templates/nginx/frappe.conf.template COPY resources/nginx-entrypoint.sh /usr/local/bin/nginx-entrypoint.sh -ARG WKHTMLTOPDF_VERSION=0.12.6-1 -ARG NODE_VERSION=16.18.0 +ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 +ARG WKHTMLTOPDF_DISTRO=bookworm +ARG NODE_VERSION=18.16.1 ENV NVM_DIR=/home/frappe/.nvm ENV PATH ${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -47,7 +49,7 @@ RUN useradd -ms /bin/bash frappe \ # Install wkhtmltopdf with patched qt && if [ "$(uname -m)" = "aarch64" ]; then export ARCH=arm64; fi \ && if [ "$(uname -m)" = "x86_64" ]; then export ARCH=amd64; fi \ - && downloaded_file=wkhtmltox_$WKHTMLTOPDF_VERSION.buster_${ARCH}.deb \ + && downloaded_file=wkhtmltox_${WKHTMLTOPDF_VERSION}.${WKHTMLTOPDF_DISTRO}_${ARCH}.deb \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \ diff --git a/images/production/Containerfile b/images/production/Containerfile index 5f761c81..2add02a0 100644 --- a/images/production/Containerfile +++ b/images/production/Containerfile @@ -1,8 +1,10 @@ -ARG PYTHON_VERSION=3.10.5 -FROM python:${PYTHON_VERSION}-slim-bullseye AS base +ARG PYTHON_VERSION=3.11.4 +ARG DEBIAN_BASE=bookworm +FROM python:${PYTHON_VERSION}-slim-${DEBIAN_BASE} AS base -ARG WKHTMLTOPDF_VERSION=0.12.6-1 -ARG NODE_VERSION=16.18.0 +ARG WKHTMLTOPDF_VERSION=0.12.6.1-3 +ARG WKHTMLTOPDF_DISTRO=bookworm +ARG NODE_VERSION=18.16.1 ENV NVM_DIR=/home/frappe/.nvm ENV PATH ${NVM_DIR}/versions/node/v${NODE_VERSION}/bin/:${PATH} @@ -44,7 +46,7 @@ RUN useradd -ms /bin/bash frappe \ # Install wkhtmltopdf with patched qt && if [ "$(uname -m)" = "aarch64" ]; then export ARCH=arm64; fi \ && if [ "$(uname -m)" = "x86_64" ]; then export ARCH=amd64; fi \ - && downloaded_file=wkhtmltox_$WKHTMLTOPDF_VERSION.buster_${ARCH}.deb \ + && downloaded_file=wkhtmltox_${WKHTMLTOPDF_VERSION}.${WKHTMLTOPDF_DISTRO}_${ARCH}.deb \ && curl -sLO https://github.com/wkhtmltopdf/packaging/releases/download/$WKHTMLTOPDF_VERSION/$downloaded_file \ && apt-get install -y ./$downloaded_file \ && rm $downloaded_file \