# syntax=docker/dockerfile:1.9 # Build: podman build -t odoo:19-amd64 -f odoo.ContainerFile . # Export: podman save -o /home/badstorm/odoo-19-amd64.tar localhost/odoo:19-amd64 # Podman Containerfile for Odoo 19 # Use Debian Trixie as base FROM debian:13-slim # Avoid interactive prompts during package installation ENV DEBIAN_FRONTEND=noninteractive # Install system dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ git \ python3 \ python3-dev \ python3-venv \ libxml2-dev \ libxslt1-dev \ libjpeg-dev \ libpng-dev \ libopenjp2-7-dev \ libtiff-dev \ build-essential \ libssl-dev \ libffi-dev \ libpq-dev \ postgresql-client \ libldap2-dev \ libsasl2-dev \ curl \ && rm -rf /var/lib/apt/lists/* # Install wkhtmltopdf RUN curl -sSL -o /tmp/wkhtmltox.deb "https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb" \ && apt-get update && apt-get install -y /tmp/wkhtmltox.deb \ && rm -rf /var/lib/apt/lists/* /tmp/wkhtmltox.deb # Create odoo user RUN useradd -m -d /opt/odoo -U -r -s /bin/bash odoo # Create necessary directories RUN mkdir -p /opt/odoo/custom_addons \ && mkdir -p /opt/odoo/data \ && mkdir -p /opt/odoo/data/filestore \ && mkdir -p /opt/odoo/log \ && chown -R odoo:odoo /opt/odoo \ && chown -R odoo:odoo /opt/odoo/log \ && chmod -R 755 /opt/odoo \ && chmod -R 775 /opt/odoo/data \ && chmod -R 775 /opt/odoo/log # Clone Odoo repository WORKDIR /opt/odoo RUN git clone https://github.com/odoo/odoo.git --depth 1 --branch 19.0 odoo-server # Create virtual environment RUN python3 -m venv venv # Install Python dependencies RUN /opt/odoo/venv/bin/pip install --upgrade pip \ && /opt/odoo/venv/bin/pip install -r /opt/odoo/odoo-server/requirements.txt \ && /opt/odoo/venv/bin/pip install phonenumbers # Create Odoo config directory in /opt/odoo (writable by odoo user) RUN mkdir -p /opt/odoo \ && touch /opt/odoo/odoo.conf \ && chown odoo:odoo /opt/odoo/odoo.conf \ && chmod 640 /opt/odoo/odoo.conf # Environment variables for database configuration ENV DB_HOST=postgres ENV DB_PORT=5432 ENV DB_USER=odoo ENV DB_NAME=mydb ENV DB_PASSWORD=odoo ENV ADMIN_PASSWD=my_admin_password # Expose Odoo ports EXPOSE 8069 8072 # Volume for custom addons VOLUME ["/opt/odoo/custom_addons"] # Set working directory WORKDIR /opt/odoo/odoo-server # Copy entrypoint script and admin creation script COPY odoo-entrypoint.sh /odoo-entrypoint.sh RUN chmod +x /odoo-entrypoint.sh # Start Odoo USER odoo ENTRYPOINT ["/odoo-entrypoint.sh"]