|
| 1 | +FROM ubuntu:jammy |
| 2 | +MAINTAINER Odoo S.A. < [email protected]> |
| 3 | + |
| 4 | +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] |
| 5 | + |
| 6 | +# Generate locale C.UTF-8 for postgres and general locale data |
| 7 | +ENV LANG en_US.UTF-8 |
| 8 | + |
| 9 | +# Retrieve the target architecture to install the correct wkhtmltopdf package |
| 10 | +ARG TARGETARCH |
| 11 | + |
| 12 | +# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf |
| 13 | + |
| 14 | +RUN apt-get update && \ |
| 15 | + DEBIAN_FRONTEND=noninteractive \ |
| 16 | + apt-get install -y --no-install-recommends \ |
| 17 | + ca-certificates \ |
| 18 | + curl \ |
| 19 | + dirmngr \ |
| 20 | + fonts-noto-cjk \ |
| 21 | + gnupg \ |
| 22 | + libssl-dev \ |
| 23 | + node-less \ |
| 24 | + npm \ |
| 25 | + python3-magic \ |
| 26 | + python3-num2words \ |
| 27 | + python3-odf \ |
| 28 | + python3-pdfminer \ |
| 29 | + python3-pip \ |
| 30 | + python3-phonenumbers \ |
| 31 | + python3-pyldap \ |
| 32 | + python3-qrcode \ |
| 33 | + python3-renderpm \ |
| 34 | + python3-setuptools \ |
| 35 | + python3-slugify \ |
| 36 | + python3-vobject \ |
| 37 | + python3-watchdog \ |
| 38 | + python3-xlrd \ |
| 39 | + python3-xlwt \ |
| 40 | + xz-utils && \ |
| 41 | + if [ -z "${TARGETARCH}" ]; then \ |
| 42 | + TARGETARCH="$(dpkg --print-architecture)"; \ |
| 43 | + fi; \ |
| 44 | + WKHTMLTOPDF_ARCH=${TARGETARCH} && \ |
| 45 | + case ${TARGETARCH} in \ |
| 46 | + "amd64") WKHTMLTOPDF_ARCH=amd64 && WKHTMLTOPDF_SHA=967390a759707337b46d1c02452e2bb6b2dc6d59 ;; \ |
| 47 | + "arm64") WKHTMLTOPDF_SHA=90f6e69896d51ef77339d3f3a20f8582bdf496cc ;; \ |
| 48 | + "ppc64le" | "ppc64el") WKHTMLTOPDF_ARCH=ppc64el && WKHTMLTOPDF_SHA=5312d7d34a25b321282929df82e3574319aed25c ;; \ |
| 49 | + esac \ |
| 50 | + && curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_${WKHTMLTOPDF_ARCH}.deb \ |
| 51 | + && echo ${WKHTMLTOPDF_SHA} wkhtmltox.deb | sha1sum -c - \ |
| 52 | + && apt-get install -y --no-install-recommends ./wkhtmltox.deb \ |
| 53 | + && rm -rf /var/lib/apt/lists/* wkhtmltox.deb |
| 54 | + |
| 55 | +# install latest postgresql-client |
| 56 | +RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main' > /etc/apt/sources.list.d/pgdg.list \ |
| 57 | + && GNUPGHOME="$(mktemp -d)" \ |
| 58 | + && export GNUPGHOME \ |
| 59 | + && repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \ |
| 60 | + && gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \ |
| 61 | + && gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \ |
| 62 | + && gpgconf --kill all \ |
| 63 | + && rm -rf "$GNUPGHOME" \ |
| 64 | + && apt-get update \ |
| 65 | + && apt-get install --no-install-recommends -y postgresql-client \ |
| 66 | + && rm -f /etc/apt/sources.list.d/pgdg.list \ |
| 67 | + && rm -rf /var/lib/apt/lists/* |
| 68 | + |
| 69 | +# Install rtlcss (on Debian buster) |
| 70 | +RUN npm install -g rtlcss |
| 71 | + |
| 72 | +# Install Odoo |
| 73 | +ENV ODOO_VERSION 17.0 |
| 74 | +ARG ODOO_RELEASE=20231113 |
| 75 | +ARG ODOO_SHA=b72a32e3356084adb637334b45b110cdedc8ab0c |
| 76 | +RUN curl -o odoo.deb -sSL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION}.${ODOO_RELEASE}_all.deb \ |
| 77 | + && echo "${ODOO_SHA} odoo.deb" | sha1sum -c - \ |
| 78 | + && apt-get update \ |
| 79 | + && apt-get -y install --no-install-recommends ./odoo.deb \ |
| 80 | + && rm -rf /var/lib/apt/lists/* odoo.deb |
| 81 | + |
| 82 | +# Copy entrypoint script and Odoo configuration file |
| 83 | +COPY ./entrypoint.sh / |
| 84 | +COPY ./odoo.conf /etc/odoo/ |
| 85 | + |
| 86 | +# Set permissions and Mount /var/lib/odoo to allow restoring filestore and /mnt/extra-addons for users addons |
| 87 | +RUN chown odoo /etc/odoo/odoo.conf \ |
| 88 | + && mkdir -p /mnt/extra-addons \ |
| 89 | + && chown -R odoo /mnt/extra-addons |
| 90 | +VOLUME ["/var/lib/odoo", "/mnt/extra-addons"] |
| 91 | + |
| 92 | +# Expose Odoo services |
| 93 | +EXPOSE 8069 8071 8072 |
| 94 | + |
| 95 | +# Set the default config file |
| 96 | +ENV ODOO_RC /etc/odoo/odoo.conf |
| 97 | + |
| 98 | +COPY wait-for-psql.py /usr/local/bin/wait-for-psql.py |
| 99 | + |
| 100 | +# Set default user when running the container |
| 101 | +USER odoo |
| 102 | + |
| 103 | +ENTRYPOINT ["/entrypoint.sh"] |
| 104 | +CMD ["odoo"] |
0 commit comments