Newer
Older
FROM python:3.10-slim-bullseye AS builder
RUN set -x; \

Théo - Le Filament
a validé
apt-get update \
&& apt-get install --yes --no-install-recommends build-essential libldap2-dev libpq-dev libsasl2-dev \
&& pip install 'wheel' \
&& pip wheel --wheel-dir=/svc/wheels --requirement 'https://raw.githubusercontent.com/oca/OCB/15.0/requirements.txt' \
&& pip wheel --wheel-dir=/svc/wheels 'phonenumbers' 'simplejson' 'openupgradelib' 'PyYAML'
FROM python:3.10-slim-bullseye AS final
ENV LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
PGDATABASE=odoo
RUN set -x; \

Théo - Le Filament
a validé
apt-get update \
&& apt-get install --yes --no-install-recommends \
curl \
git \
gnupg \
openssh-client \
xmlsec1 \
&& echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main' >> /etc/apt/sources.list.d/postgresql.list \
&& curl -SL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
&& curl -o wkhtmltox.deb -SL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.bullseye_amd64.deb \
&& echo 'cecbf5a6abbd68d324a7cd6c51ec843d71e98951 wkhtmltox.deb' | sha1sum -c - \
&& apt-get update \

Théo - Le Filament
a validé
&& apt-get install --yes --no-install-recommends ./wkhtmltox.deb \
&& apt-get install --yes --no-install-recommends postgresql-client \
&& apt-get --yes autoremove \

Théo - Le Filament
a validé
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb

Théo - Le Filament
a validé
RUN pip3 install --no-index --find-links=/svc/wheels --requirement 'https://raw.githubusercontent.com/oca/OCB/15.0/requirements.txt' \

Théo - Le Filament
a validé
&& pip3 install --upgrade --no-index --find-links=/svc/wheels 'phonenumbers' 'simplejson' 'openupgradelib' 'PyYAML'

Théo - Le Filament
a validé
ARG SAVE_COMMITS_DIR='/opt/odoo_commits/'
ENV SAVE_COMMITS_DIR=$SAVE_COMMITS_DIR
# Add Git Known Hosts
COPY ./ssh_known_git_hosts /root/.ssh/known_hosts
# Install Odoo and remove not French translations and .git directory to limit amount of data used by container

Théo - Le Filament
a validé
ARG SAVE_COMMITS_FILENAME='ocb'

Théo - Le Filament
a validé
repo='https://github.com/OCA/OCB' \
branch='15.0' \
&& useradd --create-home --home-dir /opt/odoo --no-log-init odoo \
&& /bin/bash -c "mkdir -p /opt/odoo/{etc,odoo,additional_addons,private_addons,data,private}" \
&& mkdir /opt/odoo_commits \
&& git clone --single-branch --branch "${branch}" --depth 1 "${repo}" /tmp/repo \
&& commit="$(git -C /tmp/repo rev-parse HEAD)" \
&& mv /tmp/repo/* /opt/odoo/odoo/ \
&& echo "repo;ref;commit" > $SAVE_COMMITS_DIR/$SAVE_COMMITS_FILENAME \
&& echo "${repo};${branch};${commit}" >> $SAVE_COMMITS_DIR/$SAVE_COMMITS_FILENAME \

Théo - Le Filament
a validé
&& rm -r /tmp/repo \
# Only keep French translations.
&& find /opt/odoo/odoo/addons/*/i18n/ /opt/odoo/odoo/odoo/addons/base/i18n/ -type f -not -name 'fr.po' -delete \
&& echo "info: OCB commit:" \
&& cat $SAVE_COMMITS_DIR/$SAVE_COMMITS_FILENAME
# Add script to download Odoo addons.
COPY --chown=root:root --chmod=755 ./get_addons /usr/local/bin
# Install Odoo OCA default dependencies - Commented modules do not exist yet

Théo - Le Filament
a validé
ARG SAVE_COMMITS_FILENAME='default_addons'

Théo - Le Filament
a validé
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
get_addons 'https://github.com/OCA/account-financial-reporting' '15.0' 'additional_addons' \
account_tax_balance \
&& get_addons 'https://github.com/OCA/account-financial-tools' '15.0' 'additional_addons' \
account_lock_date_update \
account_move_name_sequence \
&& get_addons 'https://github.com/OCA/account-invoicing' '15.0' 'additional_addons' \
sale_timesheet_invoice_description \
&& get_addons 'https://github.com/OCA/account-reconcile' '15.0' 'additional_addons' \
account_reconciliation_widget \
&& get_addons 'https://github.com/OCA/bank-statement-import' '15.0' 'additional_addons' \
account_statement_import \
&& get_addons 'https://github.com/OCA/crm' '15.0' 'additional_addons' \
crm_stage_probability \
&& get_addons 'https://github.com/OCA/partner-contact' '15.0' 'additional_addons' \
partner_firstname \
&& get_addons 'https://github.com/OCA/project' '15.0' 'additional_addons' \
project_status \
project_task_default_stage \
project_template \
project_timeline \
&& get_addons 'https://github.com/OCA/server-brand' '15.0' 'additional_addons' \
disable_odoo_online \
remove_odoo_enterprise \
&& get_addons 'https://github.com/OCA/server-tools' '15.0' 'additional_addons' \
base_search_fuzzy \
module_change_auto_install \
&& get_addons 'https://github.com/OCA/server-ux' '15.0' 'additional_addons' \
base_technical_features \
date_range \
mass_editing \
&& get_addons 'https://github.com/OCA/social' '15.0' 'additional_addons' \
base_search_mail_content \
mail_debrand \
mail_tracking \
&& get_addons 'https://github.com/OCA/web' '15.0' 'additional_addons' \
web_environment_ribbon \
web_responsive \
web_no_bubble \
web_timeline \
# Only keep French translations.
&& find /opt/odoo/additional_addons/*/i18n/ -type f -not -name 'fr.po' -delete \
# Install Le Filament default addons.
&& get_addons 'https://sources.le-filament.com/lefilament/remove_login_links.git' '15.0' 'private_addons/remove_login_links' \
&& get_addons 'https://sources.le-filament.com/lefilament/lefilament_release_agent.git' '15.0' 'private_addons/lefilament_release_agent' \
&& echo "info: default addon commits:" \
&& cat $SAVE_COMMITS_DIR/$SAVE_COMMITS_FILENAME
# Copy entrypoint script and Odoo configuration file
COPY ./entrypoint.sh /
COPY ./odoo.conf /opt/odoo/etc/odoo.conf

Théo - Le Filament
a validé
RUN chown -R odoo:odoo /opt/odoo
# Mount /opt/odoo/data to allow restoring filestore
VOLUME ["/opt/odoo/data/"]
# Expose Odoo services
EXPOSE 8069
# Set default user when running the container
USER odoo
# Start
ENTRYPOINT ["/entrypoint.sh"]
CMD ["odoo"]
# Metadata
LABEL org.label-schema.schema-version="15.0" \
org.label-schema.vendor=LeFilament \
org.label-schema.license=Apache-2.0 \
org.label-schema.vcs-url="https://sources.le-filament.com/lefilament/odoo_docker"