fix: make Dockerfile self-contained without entrypoint.py

This commit is contained in:
Ruslan Bakiev
2026-02-13 12:49:23 +07:00
parent 63284371a3
commit 9ec614aa23

View File

@@ -4,7 +4,7 @@ MAINTAINER Odoo S.A. <info@odoo.com>
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
ENV LANG en_US.UTF-8
ENV LANG=en_US.UTF-8
ARG TARGETARCH
@@ -70,7 +70,7 @@ RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main' > /etc/a
RUN npm install -g rtlcss
# Install Odoo
ENV ODOO_VERSION 19.0
ENV ODOO_VERSION=19.0
ARG ODOO_RELEASE=20260118
ARG ODOO_SHA=9cb5691e31d2d8831887e85cc07268016f522f4d
RUN curl -o odoo.deb -sSL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION}.${ODOO_RELEASE}_all.deb \
@@ -84,14 +84,34 @@ RUN mkdir -p /var/lib/odoo /mnt/extra-addons \
&& chown -R odoo:odoo /var/lib/odoo /mnt/extra-addons \
&& chmod -R u+w /var/lib/odoo
# Copy entrypoint script
COPY ./entrypoint.py /entrypoint.py
# Build self-contained entrypoint in image (no external files required)
RUN printf '%s\n' \
'#!/usr/bin/env bash' \
'set -e' \
'' \
'odoo_cmd=(odoo)' \
'' \
'if [ -n "${ODOO_RC:-}" ] && [ -f "${ODOO_RC}" ]; then' \
' odoo_cmd+=(-c "${ODOO_RC}")' \
'elif [ -f /etc/odoo/odoo.conf ]; then' \
' odoo_cmd+=(-c /etc/odoo/odoo.conf)' \
'fi' \
'' \
'[ -n "${ODOO_DB_HOST:-}" ] && odoo_cmd+=(--db_host="${ODOO_DB_HOST}")' \
'[ -n "${ODOO_DB_PORT:-}" ] && odoo_cmd+=(--db_port="${ODOO_DB_PORT}")' \
'[ -n "${ODOO_DB_USER:-}" ] && odoo_cmd+=(--db_user="${ODOO_DB_USER}")' \
'[ -n "${ODOO_DB_PASSWORD:-}" ] && odoo_cmd+=(--db_password="${ODOO_DB_PASSWORD}")' \
'[ -n "${ODOO_DB_NAME:-}" ] && odoo_cmd+=(-d "${ODOO_DB_NAME}")' \
'' \
'exec "${odoo_cmd[@]}"' \
> /entrypoint.sh \
&& chmod +x /entrypoint.sh
# Expose Odoo services
EXPOSE 8069 8071 8072
ENV ODOO_RC /etc/odoo/odoo.conf
ENV ODOO_RC=/etc/odoo/odoo.conf
USER odoo
CMD ["python3", "/entrypoint.py"]
CMD ["/entrypoint.sh"]