146 lines
3.3 KiB
Docker
146 lines
3.3 KiB
Docker
FROM python:3.12-bookworm
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV LANG=C.UTF-8
|
|
ENV TZ=Asia/Kolkata
|
|
|
|
# ----------------------------------------------------
|
|
# System Dependencies
|
|
# ----------------------------------------------------
|
|
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential \
|
|
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/*
|
|
|
|
# ----------------------------------------------------
|
|
# LESS Compiler
|
|
# ----------------------------------------------------
|
|
|
|
RUN npm install -g less less-plugin-clean-css
|
|
|
|
# ----------------------------------------------------
|
|
# Create Odoo User
|
|
# ----------------------------------------------------
|
|
|
|
RUN groupadd --system odoo && \
|
|
useradd \
|
|
--system \
|
|
--gid odoo \
|
|
--create-home \
|
|
--home-dir /opt/odoo \
|
|
--shell /bin/bash \
|
|
odoo
|
|
|
|
# ----------------------------------------------------
|
|
# Working Directory
|
|
# ----------------------------------------------------
|
|
|
|
WORKDIR /opt/odoo/source
|
|
|
|
# ----------------------------------------------------
|
|
# Python
|
|
# ----------------------------------------------------
|
|
|
|
RUN python -m pip install --upgrade \
|
|
pip \
|
|
setuptools \
|
|
wheel
|
|
|
|
# ----------------------------------------------------
|
|
# Copy Source
|
|
# ----------------------------------------------------
|
|
|
|
COPY . .
|
|
|
|
# ----------------------------------------------------
|
|
# Install Requirements
|
|
# ----------------------------------------------------
|
|
|
|
RUN if [ -f requirements.txt ]; then \
|
|
pip install --no-cache-dir -r requirements.txt ; \
|
|
fi
|
|
|
|
RUN pip install --no-cache-dir \
|
|
psycopg2-binary \
|
|
pip-tools
|
|
qifparse
|
|
pandas
|
|
pypdf
|
|
|
|
# ----------------------------------------------------
|
|
# Directories
|
|
# ----------------------------------------------------
|
|
|
|
RUN mkdir -p \
|
|
/var/lib/odoo \
|
|
/var/log/odoo \
|
|
/mnt/extra-addons
|
|
|
|
RUN chown -R odoo:odoo \
|
|
/opt/odoo \
|
|
/var/lib/odoo \
|
|
/var/log/odoo \
|
|
/mnt/extra-addons
|
|
|
|
RUN chmod -R 755 \
|
|
/var/lib/odoo \
|
|
/var/log/odoo
|
|
|
|
# ----------------------------------------------------
|
|
# Switch User
|
|
# ----------------------------------------------------
|
|
|
|
USER odoo
|
|
|
|
# ----------------------------------------------------
|
|
# Expose Port
|
|
# ----------------------------------------------------
|
|
|
|
EXPOSE 8069
|
|
|
|
# ----------------------------------------------------
|
|
# Health Check
|
|
# ----------------------------------------------------
|
|
|
|
#HEALTHCHECK --interval=30s \
|
|
# --timeout=10s \
|
|
# --start-period=60s \
|
|
# --retries=5 \
|
|
#CMD curl -fs http://127.0.0.1:8069/web/login || exit 1
|
|
|
|
# ----------------------------------------------------
|
|
# Init Process
|
|
# ----------------------------------------------------
|
|
|
|
ENTRYPOINT ["/usr/bin/tini","--"]
|
|
|
|
# ----------------------------------------------------
|
|
# Start Odoo
|
|
# ----------------------------------------------------
|
|
|
|
CMD ["python3", "odoo-bin", "-c", "/etc/odoo/odoo.conf"]
|