From 9585ca276c0f14eaffd35d8a826494c1d7300fe3 Mon Sep 17 00:00:00 2001 From: Marco Olimpi Date: Tue, 19 May 2026 10:33:23 +0200 Subject: [PATCH] Add Services/odoo/odoo-oca.Containerfile --- Services/odoo/odoo-oca.Containerfile | 111 +++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 Services/odoo/odoo-oca.Containerfile diff --git a/Services/odoo/odoo-oca.Containerfile b/Services/odoo/odoo-oca.Containerfile new file mode 100644 index 0000000..ede3271 --- /dev/null +++ b/Services/odoo/odoo-oca.Containerfile @@ -0,0 +1,111 @@ +# syntax=docker/dockerfile:1.9 +# Build: podman build -t odoo-oca:18 -f odoo-oca.ContainerFile . +# Export: podman save -o /home/badstorm/odoo-oca-18.tar localhost/odoo-oca:18 + +FROM debian:13-slim + +ENV DEBIAN_FRONTEND=noninteractive +ENV ODOO_VERSION=18 +ENV ODOO_BRANCH=18.0 +ENV ODOO_HOME=/opt/odoo +ENV VENV_PATH=/opt/odoo/venv18 + +ENV DB_HOST=postgres +ENV DB_PORT=5432 +ENV DB_USER=odoo +ENV DB_PASSWORD=odoo +ENV ADMIN_PASSWD=my_admin_password + +ENV ADDONS_PATH=/opt/odoo/18.0/addons,/opt/odoo/18.0/odoo/addons,/opt/odoo/addons18/OCA/l10n-italy,/opt/odoo/addons18/custom/iso_addons + +RUN apt-get update && apt-get install -y --no-install-recommends \ + git wget curl ca-certificates \ + python3 python3.13-dev python3-dev python3-venv python3-pip \ + build-essential gcc g++ make pkg-config \ + postgresql-client xfonts-base \ + libxml2-dev libxslt1-dev zlib1g-dev \ + libjpeg-dev libpng-dev libopenjp2-7-dev libtiff-dev \ + libfreetype6-dev liblcms2-dev \ + libssl-dev libffi-dev libpq-dev libldap2-dev libsasl2-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN curl -sSL -o /tmp/wkhtmltox.deb \ + "https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb" \ + && apt-get update \ + && apt-get install -y --no-install-recommends /tmp/wkhtmltox.deb \ + && cp -p /usr/local/bin/wkhtmlto* /usr/bin/ || true \ + && rm -rf /var/lib/apt/lists/* /tmp/wkhtmltox.deb + +RUN useradd -m -d /opt/odoo -U -r -s /bin/bash odoo + +RUN mkdir -p \ + /opt/odoo/addons18/OCA \ + /opt/odoo/addons18/custom \ + /opt/odoo/data/filestore \ + /opt/odoo/log \ + /etc/odoo \ + && chown -R odoo:odoo /opt/odoo /etc/odoo \ + && chmod -R 755 /opt/odoo \ + && chmod -R 775 /opt/odoo/data /opt/odoo/log + +WORKDIR /opt/odoo + +RUN git clone https://github.com/OCA/OCB.git \ + --depth=1 \ + --branch=${ODOO_BRANCH} \ + --single-branch \ + /opt/odoo/18.0 + +RUN git clone https://github.com/OCA/l10n-italy.git \ + --depth=1 \ + --branch=${ODOO_BRANCH} \ + --single-branch \ + /opt/odoo/addons18/OCA/l10n-italy + +RUN git clone https://gitlab.com/PNLUG/Odoo/repository/iso_addons.git \ + --depth=1 \ + --branch=${ODOO_BRANCH} \ + --single-branch \ + /opt/odoo/addons18/custom/iso_addons + +RUN python3 -m venv ${VENV_PATH} + +RUN ${VENV_PATH}/bin/pip install --upgrade pip setuptools wheel \ + && ${VENV_PATH}/bin/pip install \ + pypdf \ + phonenumbers \ + asn1crypto \ + codicefiscale \ + unidecode \ + paramiko==3.5.1 \ + pysftp \ + packaging \ + pyPDF2 \ + cryptography \ + -r /opt/odoo/18.0/requirements.txt \ + -r /opt/odoo/addons18/OCA/l10n-italy/requirements.txt + +RUN printf "[options]\n\ +admin_passwd = ${ADMIN_PASSWD}\n\ +db_host = ${DB_HOST}\n\ +db_port = ${DB_PORT}\n\ +db_user = ${DB_USER}\n\ +db_password = ${DB_PASSWORD}\n\ +addons_path = ${ADDONS_PATH}\n\ +logfile = /opt/odoo/log/odoo.log\n\ +data_dir = /opt/odoo/data\n\ +proxy_mode = True\n\ +" > /etc/odoo/odoo18.conf \ + && chown odoo:odoo /etc/odoo/odoo18.conf \ + && chmod 640 /etc/odoo/odoo18.conf \ + && chown -R odoo:odoo /opt/odoo /etc/odoo + +EXPOSE 8069 8072 + +VOLUME ["/opt/odoo/addons18/custom", "/opt/odoo/data", "/opt/odoo/log"] + +USER odoo + +WORKDIR /opt/odoo/18.0 + +CMD ["/opt/odoo/venv18/bin/python", "/opt/odoo/18.0/odoo-bin", "-c", "/etc/odoo/odoo18.conf"] \ No newline at end of file