Docker improvements, websocket support, CI/CD preparation
This commit is contained in:
parent
54885316af
commit
37579dbca8
212
Dockerfile
212
Dockerfile
|
|
@ -1,145 +1,149 @@
|
||||||
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 \
|
# ------------------------------------------------------------------
|
||||||
build-essential \
|
# Install PostgreSQL Repository & System Packages
|
||||||
gcc \
|
# ------------------------------------------------------------------
|
||||||
g++ \
|
|
||||||
git \
|
|
||||||
curl \
|
|
||||||
wget \
|
|
||||||
npm \
|
|
||||||
tini \
|
|
||||||
libpq-dev \
|
|
||||||
libldap2-dev \
|
|
||||||
libsasl2-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxslt1-dev \
|
|
||||||
libjpeg62-turbo-dev \
|
|
||||||
zlib1g-dev \
|
|
||||||
libffi-dev \
|
|
||||||
libssl-dev \
|
|
||||||
liblcms2-dev \
|
|
||||||
libblas-dev \
|
|
||||||
libatlas-base-dev \
|
|
||||||
libyaml-dev \
|
|
||||||
libevent-dev \
|
|
||||||
fonts-dejavu \
|
|
||||||
wkhtmltopdf \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# ----------------------------------------------------
|
RUN apt-get update && \
|
||||||
# LESS Compiler
|
apt-get install -y --no-install-recommends \
|
||||||
# ----------------------------------------------------
|
build-essential \
|
||||||
|
gcc \
|
||||||
|
g++ \
|
||||||
|
git \
|
||||||
|
curl \
|
||||||
|
npm \
|
||||||
|
wget \
|
||||||
|
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 \
|
||||||
|
libldap2-dev \
|
||||||
|
libsasl2-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
libxslt1-dev \
|
||||||
|
libjpeg62-turbo-dev \
|
||||||
|
zlib1g-dev \
|
||||||
|
libffi-dev \
|
||||||
|
libssl-dev \
|
||||||
|
liblcms2-dev \
|
||||||
|
libblas-dev \
|
||||||
|
libatlas-base-dev \
|
||||||
|
libyaml-dev \
|
||||||
|
libevent-dev \
|
||||||
|
fonts-dejavu \
|
||||||
|
iproute2 \
|
||||||
|
net-tools \
|
||||||
|
wkhtmltopdf && \
|
||||||
|
apt-get clean && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------
|
||||||
|
# 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 \
|
--create-home \
|
||||||
--gid odoo \
|
--home-dir /opt/odoo \
|
||||||
--create-home \
|
--shell /bin/bash \
|
||||||
--home-dir /opt/odoo \
|
odoo
|
||||||
--shell /bin/bash \
|
|
||||||
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 \
|
||||||
|
psycopg2-binary \
|
||||||
|
pandas \
|
||||||
|
qifparse \
|
||||||
|
pypdf \
|
||||||
|
phonenumbers \
|
||||||
|
python-docx
|
||||||
|
|
||||||
RUN pip install --no-cache-dir \
|
# ------------------------------------------------------------------
|
||||||
psycopg2-binary \
|
# Create Required Directories
|
||||||
pip-tools
|
# ------------------------------------------------------------------
|
||||||
qifparse
|
|
||||||
pandas
|
|
||||||
pypdf
|
|
||||||
|
|
||||||
# ----------------------------------------------------
|
|
||||||
# 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"]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue