details: https://code.tryton.org/tryton-docker/commit/737c5236a7eb
branch: default
user: Cédric Krier <[email protected]>
date: Tue Oct 06 08:05:41 2026 +0200
description:
Add 8.2 series
diffstat:
.gitlab-ci.yml | 6 +-
8.2/Dockerfile | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
8.2/entrypoint.sh | 24 +++++++++++++++
8.2/gunicorn.conf.py | 9 +++++
8.2/office/Dockerfile | 13 ++++++++
8.2/trytond.conf | 3 +
6 files changed, 131 insertions(+), 3 deletions(-)
diffs (176 lines):
diff -r 1fa47780a03a -r 737c5236a7eb .gitlab-ci.yml
--- a/.gitlab-ci.yml Mon Sep 14 11:27:31 2026 +0200
+++ b/.gitlab-ci.yml Tue Oct 06 08:05:41 2026 +0200
@@ -12,7 +12,7 @@
.series:
parallel:
matrix:
- - SERIES: ["7.0", "7.8", "8.0"]
+ - SERIES: ["7.0", "7.8", "8.0", "8.2"]
build:
stage: build
@@ -95,7 +95,7 @@
- crane push image.tar tryton/tryton:latest
parallel:
matrix:
- - SERIES: "8.0"
+ - SERIES: "8.2"
resource_group: publish
publish-office-latest:
@@ -108,5 +108,5 @@
- crane push image.tar tryton/tryton:office
parallel:
matrix:
- - SERIES: "8.0"
+ - SERIES: "8.2"
resource_group: publish
diff -r 1fa47780a03a -r 737c5236a7eb 8.2/Dockerfile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/8.2/Dockerfile Tue Oct 06 08:05:41 2026 +0200
@@ -0,0 +1,79 @@
+FROM node AS builder-node
+ENV SERIES=8.2
+RUN curl -L https://downloads.tryton.org/${SERIES}/tryton-sao-last.tgz | tar
zxf - -C /
+RUN cd /package && npm install --production --legacy-peer-deps
+
+WORKDIR /tinymce
+RUN npm install tinymce@^7
+RUN curl
https://download.tiny.cloud/tinymce/community/languagepacks/4/langs.zip -o
/tmp/langs.zip \
+ && unzip -d node_modules/tinymce /tmp/langs.zip \
+ && (cd node_modules/tinymce/langs && \
+ for l in ??_??.js; do \
+ [ ! -e ${l%_??.js}.js ] && cp $l ${l%_??.js}.js && sed -i -e
"1s@${l%.js}@${l%_??.js}@" ${l%_??.js}.js || true; \
+ done) \
+ && mv node_modules/tinymce /package
+
+FROM debian:13-slim
+LABEL maintainer="Tryton <[email protected]>" \
+ org.label-schema.name="Tryton" \
+ org.label-schema.url="http://www.tryton.org/" \
+ org.label-schema.vendor="Tryton" \
+ org.label-schema.version="8.2" \
+ org.label-schema.schema-version="1.0"
+
+ENV SERIES=8.2
+ENV LANG=C.UTF-8
+
+RUN groupadd -r trytond \
+ && useradd --no-log-init -r -d /var/lib/trytond -m -g trytond trytond \
+ && mkdir /var/lib/trytond/db && chown trytond:trytond /var/lib/trytond/db \
+ && mkdir /var/lib/trytond/www \
+ && mkdir -p /etc/python3 \
+ && echo "[DEFAULT]\nbyte-compile = standard, optimize" \
+ > /etc/python3/debian_config
+
+RUN apt-get update \
+ && apt-get install -y --no-install-recommends \
+ curl \
+ python3 \
+ python3-pip \
+ python3-wheel \
+ gunicorn \
+ python3-argcomplete \
+ bash-completion \
+ graphviz \
+ && rm -rf /var/lib/apt/lists/*
+
+RUN mkdir -p /etc/bash_completion.d \
+ && activate-global-python-argcomplete
+
+COPY pip-constraints.txt* /root/pip-constraints.txt
+RUN export PIP_CONSTRAINT=/root/pip-constraints.txt \
+ && touch /root/pip-constraints.txt \
+ && pip3 install --break-system-packages --no-cache-dir \
+
"trytond[PostgreSQL,Levenshtein,barcode,coroutine,email-validation,html2text,image,mjml,qrcode,weasyprint]
== ${SERIES}.*" \
+ "psycopg[pool,binary] >= 3" \
+ "proteus == ${SERIES}.*" \
+ && for module in `curl -L
https://downloads.tryton.org/${SERIES}/modules.txt`; do \
+ pip3 install --break-system-packages --no-cache-dir "trytond_${module}
== ${SERIES}.*" || exit 1; \
+ done \
+ && pip3 install --break-system-packages --no-cache-dir \
+ pwdlib[bcrypt] \
+ phonenumberslite \
+ pycountry \
+ python-stdnum[SOAP] \
+ schwifty \
+ && python3 -m compileall -r 10 -o 1 -q
+
+COPY --from=builder-node /package /var/lib/trytond/www
+COPY entrypoint.sh /
+COPY trytond.conf /etc/trytond.conf
+COPY gunicorn.conf.py /etc/gunicorn.conf.py
+
+EXPOSE 8000
+
+VOLUME ["/var/lib/trytond/db"]
+ENV TRYTOND_CONFIG=/etc/trytond.conf
+USER trytond
+ENTRYPOINT ["/entrypoint.sh"]
+CMD ["gunicorn", "--config=/etc/gunicorn.conf.py"]
diff -r 1fa47780a03a -r 737c5236a7eb 8.2/entrypoint.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/8.2/entrypoint.sh Tue Oct 06 08:05:41 2026 +0200
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+set -e
+
+quote() {
+ python3 -c 'import sys; from urllib.parse import quote;
print(quote(sys.argv[1]))' "$1"
+}
+
+: ${DB_USER:=${POSTGRES_ENV_POSTGRES_USER:='postgres'}}
+: ${DB_PASSWORD:=${POSTGRES_ENV_POSTGRES_PASSWORD}}
+: ${DB_HOSTNAME:=${POSTGRES_PORT_5432_TCP_ADDR:='postgres'}}
+: ${DB_PORT:=${POSTGRES_PORT_5432_TCP_PORT:='5432'}}
+: ${TRYTOND_DATABASE_URI:="postgresql://$(quote "${DB_USER}"):$(quote
"${DB_PASSWORD}")@${DB_HOSTNAME}:${DB_PORT}/"}
+: ${TRYTOND_HTML__SRC:='/tinymce/tinymce.js'}
+: ${PYTHONOPTIMIZE:=1}
+: ${LANG:=C.UTF-8}
+
+export TRYTOND_DATABASE_URI TRYTOND_HTML__SRC PYTHONOPTIMIZE
+
+if [ "${1:0:1}" = '-' ]; then
+ set -- gunicorn --config=/etc/gunicorn.conf.py "$@"
+fi
+
+exec "$@"
diff -r 1fa47780a03a -r 737c5236a7eb 8.2/gunicorn.conf.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/8.2/gunicorn.conf.py Tue Oct 06 08:05:41 2026 +0200
@@ -0,0 +1,9 @@
+import os
+
+wsgi_app = 'trytond.application:app'
+bind = '0.0.0.0:8000'
+raw_env = [
+ 'TRYTOND_CONFIG=%s' % os.environ.get('TRYTOND_CONFIG', ''),
+ 'TRYTOND_DATABASE_URI=%s' % os.environ.get('TRYTOND_DATABASE_URI', ''),
+ 'PYTHONOPTIMIZE=%s' % os.environ.get('PYTHONOPTIMIZE'),
+ ]
diff -r 1fa47780a03a -r 737c5236a7eb 8.2/office/Dockerfile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/8.2/office/Dockerfile Tue Oct 06 08:05:41 2026 +0200
@@ -0,0 +1,13 @@
+FROM ${REGISTRY_IMAGE:-tryton}/tryton:8.2${TAG_SUFFIX}
+LABEL org.label-schema.version="8.2-office"
+
+USER root
+
+RUN apt-get update \
+ && apt-get install -y --no-install-recommends \
+ libreoffice-nogui \
+ fonts-liberation2 \
+ weasyprint python3-munkres \
+ && rm -rf /var/lib/apt/lists/*
+
+USER trytond
diff -r 1fa47780a03a -r 737c5236a7eb 8.2/trytond.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/8.2/trytond.conf Tue Oct 06 08:05:41 2026 +0200
@@ -0,0 +1,3 @@
+[web]
+listen=0.0.0.0:8000
+root=/var/lib/trytond/www