95 خطوط
2.6 KiB
Docker
95 خطوط
2.6 KiB
Docker
# 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"]
|