122 lines
3.8 KiB
Docker
122 lines
3.8 KiB
Docker
FROM debian:bookworm-slim
|
|
MAINTAINER Mint System GmbH <info@mint-system.ch>
|
|
|
|
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
|
|
|
|
# Generate locale C.UTF-8 for postgres and general locale data
|
|
ENV LANG C.UTF-8
|
|
|
|
# Retrieve the target architecture to install the correct wkhtmltopdf package
|
|
ARG TARGETARCH
|
|
|
|
# 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 \
|
|
node-less \
|
|
npm \
|
|
python3-dev \
|
|
libpq-dev \
|
|
libldap2-dev \
|
|
libsasl2-dev \
|
|
gcc \
|
|
python3-venv \
|
|
python3-magic \
|
|
python3-num2words \
|
|
python3-odf \
|
|
python3-pdfminer \
|
|
python3-pip \
|
|
python3-phonenumbers \
|
|
python3-pyldap \
|
|
python3-qrcode \
|
|
python3-renderpm \
|
|
python3-setuptools \
|
|
python3-slugify \
|
|
python3-vobject \
|
|
python3-watchdog \
|
|
python3-xlrd \
|
|
python3-xlwt \
|
|
xz-utils \
|
|
gettext && \
|
|
if [ -z "${TARGETARCH}" ]; then \
|
|
TARGETARCH="$(dpkg --print-architecture)"; \
|
|
fi; \
|
|
WKHTMLTOPDF_ARCH=${TARGETARCH} && \
|
|
case ${TARGETARCH} in \
|
|
"amd64") WKHTMLTOPDF_ARCH=amd64 && WKHTMLTOPDF_SHA=e9f95436298c77cc9406bd4bbd242f4771d0a4b2 ;; \
|
|
"arm64") WKHTMLTOPDF_SHA=58c84db46b11ba0e14abb77a32324b1c257f1f22 ;; \
|
|
"ppc64le" | "ppc64el") WKHTMLTOPDF_ARCH=ppc64el && WKHTMLTOPDF_SHA=7ed8f6dcedf5345a3dd4eeb58dc89704d862f9cd ;; \
|
|
esac \
|
|
&& curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_${WKHTMLTOPDF_ARCH}.deb \
|
|
&& echo ${WKHTMLTOPDF_SHA} wkhtmltox.deb | sha1sum -c - \
|
|
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
|
|
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb
|
|
|
|
# Install latest postgresql-client
|
|
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bookworm-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 \
|
|
&& rm -f /etc/apt/sources.list.d/pgdg.list \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install rtlcss (on Debian buster)
|
|
RUN npm install -g rtlcss
|
|
|
|
# Prepare virtual env
|
|
RUN python3 -m venv /opt/odoo-venv
|
|
ENV PATH=/opt/odoo-venv/bin:$PATH
|
|
|
|
# Install Odoo
|
|
COPY ./odoo /opt/odoo
|
|
RUN pip install --no-cache-dir -e /opt/odoo -r /opt/odoo/requirements.txt \
|
|
&& pip list
|
|
ENV ADDONS_PATH=/opt/odoo/addons
|
|
|
|
# Copy entrypoint script and Odoo configuration file
|
|
COPY ./build/odoo.conf.template /etc/odoo/
|
|
COPY ./build/entrypoint.sh /
|
|
|
|
# Create a user named odoo
|
|
|
|
ARG UID=101
|
|
ARG GID=101
|
|
RUN groupadd --gid $GID odoo
|
|
RUN useradd --uid $UID --gid $GID -m odoo
|
|
|
|
# Set the working directory
|
|
WORKDIR /opt/odoo
|
|
|
|
# Set permissions and mount /var/lib/odoo to allow restoring filestore and /mnt/extra-addons for users addons
|
|
RUN chown odoo:odoo /etc/odoo \
|
|
&& mkdir -p /mnt/extra-addons \
|
|
&& chown -R odoo:odoo /mnt/extra-addons \
|
|
&& mkdir -p /var/lib/odoo \
|
|
&& chown -R odoo:odoo /var/lib/odoo
|
|
VOLUME ["/var/lib/odoo", "/mnt/extra-addons"]
|
|
|
|
# Expose Odoo services
|
|
EXPOSE 8069 8071 8072
|
|
|
|
# Set the default config file
|
|
ENV ODOO_RC /etc/odoo/odoo.conf
|
|
|
|
COPY ./build/wait-for-psql.py /usr/local/bin/wait-for-psql.py
|
|
|
|
# Set default user when running the container
|
|
USER odoo
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
CMD ["odoo"]
|