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"]