odoo source from github.com/odoo/odoo, and clone to /opt/odoo/odoo.
you can change ODOO_VERSION for you need version (ex: 16.0 or 17.0 or 18.0)
Dockerfile as follow:
FROM ubuntu:noble
SHELL ["/bin/bash", "-xo", "pipefail", "-c"]
ARG ODOO_VERSION=18.0
ARG ODOO_REVISION=20250123
ARG DEBIAN_FRONTEND=noninteractive
# Generate locale C.UTF-8 for postgres and general locale data
ENV LANG=C.UTF-8
# Install dependencies (from Odoo install documentation)
RUN apt-get update && \
apt-get install -y libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev \
libtiff5-dev libjpeg-dev libopenjp2-7-dev zlib1g-dev libfreetype6-dev \
liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev libpq-dev \
python3-pip python3-venv
# Install additional tools needed for build & run
RUN apt-get update && apt-get install -y python3.12 \
gcc g++ curl git nano postgresql-client
# install wkhtmltox for PDF reports
RUN curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb \
&& echo 967390a759707337b46d1c02452e2bb6b2dc6d59 wkhtmltox.deb | sha1sum -c - \
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
&& rm wkhtmltox.deb
# Install Node
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
RUN apt-get install -y nodejs
# Create odoo user and directories and set permissions
RUN useradd -ms /bin/bash odoo \
&& mkdir /etc/odoo /opt/odoo /opt/odoo/scripts \
&& chown -R odoo:odoo /etc/odoo /opt/odoo
WORKDIR /opt/odoo
# Install Odoo and dependencies from source and check out specific revision
USER odoo
RUN git clone --branch=$ODOO_VERSION --depth=1000 https://github.com/odoo/odoo.git odoo
# Install Odoo python package requirements
USER root
# Define runtime configuration
COPY src/entrypoint.sh /opt/odoo
COPY src/scripts/* /opt/odoo/scripts
COPY src/odoo.conf /etc/odoo
RUN chown odoo:odoo /etc/odoo/odoo.conf
USER odoo
RUN mkdir /opt/odoo/data /opt/odoo/custom_addons \
/opt/odoo/.vscode /home/odoo/.vscode-server
ENV ODOO_RC=/etc/odoo/odoo.conf
ENV PATH="/opt/odoo/scripts:${PATH}"
RUN python3 -m venv /opt/odoo/odoo-venv
ENV PATH="/opt/odoo/odoo-venv/bin:${PATH}"
RUN pip install pip --upgrade
RUN pip install --no-cache-dir -r /opt/odoo/odoo/requirements.txt
EXPOSE 8069
ENTRYPOINT ["/opt/odoo/entrypoint.sh"]
CMD ["odoo"]
Content type
Image
Digest
sha256:e62413786…
Size
887.1 MB
Last updated
over 1 year ago
docker pull jetlo0718/odoo-dev:18.0