Docker improvements, websocket support, CI/CD preparation

This commit is contained in:
administrator 2026-07-09 15:11:05 +05:30
parent 54885316af
commit 37579dbca8
1 changed files with 108 additions and 104 deletions

View File

@ -1,23 +1,39 @@
FROM python:3.12-bookworm FROM python:3.12-bookworm
ENV PYTHONDONTWRITEBYTECODE=1 # ------------------------------------------------------------------
ENV PYTHONUNBUFFERED=1 # Environment
ENV LANG=C.UTF-8 # ------------------------------------------------------------------
ENV TZ=Asia/Kolkata
# ---------------------------------------------------- ENV PYTHONDONTWRITEBYTECODE=1 \
# System Dependencies PYTHONUNBUFFERED=1 \
# ---------------------------------------------------- LANG=C.UTF-8 \
TZ=Asia/Kolkata
RUN apt-get update && apt-get install -y \ # ------------------------------------------------------------------
# Install PostgreSQL Repository & System Packages
# ------------------------------------------------------------------
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \ build-essential \
gcc \ gcc \
g++ \ g++ \
git \ git \
curl \ curl \
wget \
npm \ npm \
wget \
tini \ tini \
gnupg \
ca-certificates \
lsb-release && \
mkdir -p /etc/apt/keyrings && \
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
gpg --dearmor -o /etc/apt/keyrings/postgresql.gpg && \
echo "deb [signed-by=/etc/apt/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" \
> /etc/apt/sources.list.d/pgdg.list && \
apt-get update && \
apt-get install -y --no-install-recommends \
postgresql-client-16 \
libpq-dev \ libpq-dev \
libldap2-dev \ libldap2-dev \
libsasl2-dev \ libsasl2-dev \
@ -33,113 +49,101 @@ RUN apt-get update && apt-get install -y \
libyaml-dev \ libyaml-dev \
libevent-dev \ libevent-dev \
fonts-dejavu \ fonts-dejavu \
wkhtmltopdf \ iproute2 \
&& rm -rf /var/lib/apt/lists/* net-tools \
wkhtmltopdf && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# ---------------------------------------------------- # ------------------------------------------------------------------
# LESS Compiler # Install LESS Compiler (Required by Odoo)
# ---------------------------------------------------- # ------------------------------------------------------------------
RUN npm install -g less less-plugin-clean-css RUN npm install -g less less-plugin-clean-css
# ---------------------------------------------------- # ------------------------------------------------------------------
# Create Odoo User # Create Odoo User
# ---------------------------------------------------- # ------------------------------------------------------------------
RUN groupadd --system odoo && \ RUN useradd \
useradd \
--system \ --system \
--gid odoo \
--create-home \ --create-home \
--home-dir /opt/odoo \ --home-dir /opt/odoo \
--shell /bin/bash \ --shell /bin/bash \
odoo odoo
# ---------------------------------------------------- # ------------------------------------------------------------------
# Working Directory # Working Directory
# ---------------------------------------------------- # ------------------------------------------------------------------
WORKDIR /opt/odoo/source WORKDIR /opt/odoo/source
# ---------------------------------------------------- # ------------------------------------------------------------------
# Python # Upgrade pip
# ---------------------------------------------------- # ------------------------------------------------------------------
RUN python -m pip install --upgrade \ RUN pip install --no-cache-dir --upgrade \
pip \ pip \
setuptools \ setuptools \
wheel wheel
# ---------------------------------------------------- # ------------------------------------------------------------------
# Copy Source # Copy Application Source
# ---------------------------------------------------- # ------------------------------------------------------------------
COPY . . COPY . .
# ---------------------------------------------------- # ------------------------------------------------------------------
# Install Requirements # Install Python Dependencies
# ---------------------------------------------------- # ------------------------------------------------------------------
RUN if [ -f requirements.txt ]; then \ RUN if [ -f requirements.txt ]; then \
pip install --no-cache-dir -r requirements.txt ; \ pip install --no-cache-dir -r requirements.txt; \
fi fi && \
pip install --no-cache-dir \
RUN pip install --no-cache-dir \
psycopg2-binary \ psycopg2-binary \
pip-tools pandas \
qifparse qifparse \
pandas pypdf \
pypdf phonenumbers \
python-docx
# ---------------------------------------------------- # ------------------------------------------------------------------
# Directories # Create Required Directories
# ---------------------------------------------------- # ------------------------------------------------------------------
RUN mkdir -p \ RUN mkdir -p \
/var/lib/odoo \ /var/lib/odoo \
/var/log/odoo \ /var/log/odoo \
/mnt/extra-addons /mnt/extra-addons && \
chown -R odoo:odoo \
RUN chown -R odoo:odoo \
/opt/odoo \ /opt/odoo \
/var/lib/odoo \ /var/lib/odoo \
/var/log/odoo \ /var/log/odoo \
/mnt/extra-addons /mnt/extra-addons
RUN chmod -R 755 \
/var/lib/odoo \
/var/log/odoo
# ----------------------------------------------------
# Switch User
# ----------------------------------------------------
USER odoo USER odoo
# ---------------------------------------------------- # ------------------------------------------------------------------
# Expose Port # Expose Odoo Port
# ---------------------------------------------------- # ------------------------------------------------------------------
EXPOSE 8069 EXPOSE 8069
# ---------------------------------------------------- # ------------------------------------------------------------------
# Health Check # Health Check
# ---------------------------------------------------- # ------------------------------------------------------------------
#HEALTHCHECK --interval=30s \ HEALTHCHECK --interval=30s \
# --timeout=10s \ --timeout=10s \
# --start-period=60s \ --start-period=60s \
# --retries=5 \ --retries=5 \
#CMD curl -fs http://127.0.0.1:8069/web/login || exit 1 CMD curl -fs http://127.0.0.1:8069/web/login || exit 1
# ---------------------------------------------------- # ------------------------------------------------------------------
# Init Process # Init
# ---------------------------------------------------- # ------------------------------------------------------------------
ENTRYPOINT ["/usr/bin/tini","--"] ENTRYPOINT ["/usr/bin/tini","--"]
# ----------------------------------------------------
# Start Odoo
# ----------------------------------------------------
CMD ["python3", "odoo-bin", "-c", "/etc/odoo/odoo.conf"] CMD ["python3", "odoo-bin", "-c", "/etc/odoo/odoo.conf"]