# syntax=docker/dockerfile:1 ARG PYTHON_VERSION=3.12.10 ARG DEBIAN_NAME=bookworm FROM python:${PYTHON_VERSION}-slim-${DEBIAN_NAME} #MAINTAINER TechnoLibre SHELL ["/bin/bash", "-xo", "pipefail", "-c"] # Generate locale C.UTF-8 for postgres and general locale data ENV LANG C.UTF-8 ENV LANG="C.UTF-8" \ LC_ALL="C.UTF-8" \ PATH="/opt/pyenv/shims:/opt/pyenv/bin:$PATH" \ PYENV_ROOT="/opt/pyenv" \ PYENV_SHELL="bash" ENV ODOO_PREFIX /ERPLibre ENV ODOO_VERSION 18.0 ENV ODOO_EXEC_BIN "${ODOO_PREFIX}/odoo${ODOO_VERSION}/odoo/odoo-bin" ARG URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb ARG SHA1SUM_WKTHMLTOX=e9f95436298c77cc9406bd4bbd242f4771d0a4b2 # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf RUN apt-get update \ && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ dirmngr \ fonts-noto-cjk \ gnupg \ libssl-dev \ npm \ xz-utils \ git \ tree \ vim \ htop \ tig \ cmake \ wget \ tig \ vim \ htop \ make \ libssl-dev \ zlib1g-dev \ llvm \ tk-dev \ libxslt-dev \ libzip-dev \ libldap2-dev \ libsasl2-dev \ gdebi-core \ iproute2 \ libmariadbd-dev \ inetutils-ping \ build-essential \ libsqlite3-dev \ sqlite3 \ bzip2 \ libbz2-dev \ zlib1g-dev \ libssl-dev \ libcairo2-dev \ openssl \ libgdbm-dev \ libgdbm-compat-dev \ liblzma-dev \ libreadline-dev \ libncursesw5-dev \ libffi-dev \ uuid-dev \ portaudio19-dev \ libcups2-dev \ shfmt \ xmlsec1 \ swig \ && curl -o wkhtmltox.deb -sSL https://${URL_WKHTMLTOX}/ \ && echo "${SHA1SUM_WKTHMLTOX} wkhtmltox.deb" | sha1sum -c - \ && apt-get install -y --no-install-recommends ./wkhtmltox.deb \ && rm -rf /var/lib/apt/lists/* wkhtmltox.deb ARG DEBIAN_NAME=bookworm # Install latest postgresql-client RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ ${DEBIAN_NAME}-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ && GNUPGHOME="$(mktemp -d)" \ && export GNUPGHOME \ && repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \ && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \ && gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \ && gpgconf --kill all \ && rm -rf "$GNUPGHOME" \ && apt-get update \ && apt-get install --no-install-recommends -y postgresql-client-18 libpq-dev \ && rm -rf /var/lib/apt/lists/* # Install npm dependencies RUN npm install -g rtlcss less prettier @prettier/plugin-xml \ && ln -fs /usr/local/bin/lessc /usr/bin/lessc # Install git-repo RUN cd ; mkdir -p .bin/ && \ git config --global color.ui false && \ git config --global user.email "foo@bar.io" && \ git config --global user.name "Foo Bar" && \ curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo && \ chmod +x /usr/bin/repo && sed -i '1 s/python$/python3/' /usr/bin/repo RUN groupadd --gid 101 --force odoo && \ useradd --non-unique --create-home --uid 101 --gid 101 odoo # Copy entrypoint script and Odoo configuration file COPY ./entrypoint.sh / RUN chmod +x /entrypoint.sh # Set the default config file ENV ODOO_RC /etc/odoo/odoo.conf COPY ./odoo.conf $ODOO_RC RUN chown odoo $ODOO_RC RUN mkdir $ODOO_PREFIX && \ chown odoo $ODOO_PREFIX && \ chmod 1777 $ODOO_PREFIX # Mount /var/lib/odoo to allow restoring filestore RUN chown odoo $ODOO_RC # Expose Odoo services EXPOSE 8069 8071 8072 #RUN mkdir -p /var/lib/odoo && \ # chown odoo /var/lib/odoo && \ # chmod 1777 /var/lib/odoo # VOLUME /var/lib/odoo # Set default user when running the container USER odoo ENTRYPOINT ["/entrypoint.sh"] CMD ["odoo"]