From a65d6c4522ea045c4fb3ef52681e8a3f22a63e60 Mon Sep 17 00:00:00 2001 From: Anass Ahmed Date: Fri, 25 Aug 2017 21:40:47 +0200 Subject: [PATCH] [ADD] Odoo: master (11.0) * Odoo version master (11.0). Release 20170825. * Added `python-html2text` as a dependency. --- master/Dockerfile | 57 ++++++++++++++++++++++++++++++++++++++++++++ master/entrypoint.sh | 42 ++++++++++++++++++++++++++++++++ master/odoo.conf | 37 ++++++++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 master/Dockerfile create mode 100755 master/entrypoint.sh create mode 100644 master/odoo.conf diff --git a/master/Dockerfile b/master/Dockerfile new file mode 100644 index 0000000..e1740ee --- /dev/null +++ b/master/Dockerfile @@ -0,0 +1,57 @@ +FROM debian:jessie +MAINTAINER Odoo S.A. + +# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf +RUN set -x; \ + apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + node-less \ + python-gevent \ + python-pip \ + python-renderpm \ + python-support \ + python-watchdog \ + python-html2text \ + && curl -o wkhtmltox.deb -SL http://nightly.odoo.com/extra/wkhtmltox-0.12.1.2_linux-jessie-amd64.deb \ + && echo '40e8b906de658a2221b15e4e8cd82565a47d7ee8 wkhtmltox.deb' | sha1sum -c - \ + && dpkg --force-depends -i wkhtmltox.deb \ + && apt-get -y install -f --no-install-recommends \ + && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false -o APT::AutoRemove::SuggestsImportant=false npm \ + && rm -rf /var/lib/apt/lists/* wkhtmltox.deb \ + && pip install psycogreen==1.0 + +# Install Odoo +ENV ODOO_VERSION master +ENV ODOO_VERSION_PKG 11.0alpha1 +ENV ODOO_RELEASE 20170825 +RUN set -x; \ + curl -o odoo.deb -SL http://nightly.odoo.com/${ODOO_VERSION}/nightly/deb/odoo_${ODOO_VERSION_PKG}.${ODOO_RELEASE}_all.deb \ + && echo '54a4dd5d01aa3ba89db62d581db28a666b9fe1ea odoo.deb' | sha1sum -c - \ + && dpkg --force-depends -i odoo.deb \ + && apt-get update \ + && apt-get -y install -f --no-install-recommends \ + && rm -rf /var/lib/apt/lists/* odoo.deb + +# Copy entrypoint script and Odoo configuration file +COPY ./entrypoint.sh / +COPY ./odoo.conf /etc/odoo/ +RUN chown odoo /etc/odoo/odoo.conf + +# Mount /var/lib/odoo to allow restoring filestore and /mnt/extra-addons for users addons +RUN mkdir -p /mnt/extra-addons \ + && chown -R odoo /mnt/extra-addons +VOLUME ["/var/lib/odoo", "/mnt/extra-addons"] + +# Expose Odoo services +EXPOSE 8069 8071 + +# Set the default config file +ENV ODOO_RC /etc/odoo/odoo.conf + +# Set default user when running the container +USER odoo + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["odoo"] diff --git a/master/entrypoint.sh b/master/entrypoint.sh new file mode 100755 index 0000000..4f0ef59 --- /dev/null +++ b/master/entrypoint.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +set -e + +# set the postgres database host, port, user and password according to the environment +# and pass them as arguments to the odoo process if not present in the config file +: ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}} +: ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}} +: ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}} +: ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}} + +DB_ARGS=() +function check_config() { + param="$1" + value="$2" + if ! grep -q -E "^\s*\b${param}\b\s*=" "$ODOO_RC" ; then + DB_ARGS+=("--${param}") + DB_ARGS+=("${value}") + fi; +} +check_config "db_host" "$HOST" +check_config "db_port" "$PORT" +check_config "db_user" "$USER" +check_config "db_password" "$PASSWORD" + +case "$1" in + -- | odoo) + shift + if [[ "$1" == "scaffold" ]] ; then + exec odoo "$@" + else + exec odoo "$@" "${DB_ARGS[@]}" + fi + ;; + -*) + exec odoo "$@" "${DB_ARGS[@]}" + ;; + *) + exec "$@" +esac + +exit 1 diff --git a/master/odoo.conf b/master/odoo.conf new file mode 100644 index 0000000..c3769ce --- /dev/null +++ b/master/odoo.conf @@ -0,0 +1,37 @@ +[options] +addons_path = /mnt/extra-addons,/usr/lib/python2.7/dist-packages/odoo/addons +data_dir = /var/lib/odoo +; admin_passwd = admin +; csv_internal_sep = , +; db_maxconn = 64 +; db_name = False +; db_template = template1 +; dbfilter = .* +; debug_mode = False +; email_from = False +; limit_memory_hard = 2684354560 +; limit_memory_soft = 2147483648 +; limit_request = 8192 +; limit_time_cpu = 60 +; limit_time_real = 120 +; list_db = True +; log_db = False +; log_handler = [':INFO'] +; log_level = info +; logfile = None +; longpolling_port = 8072 +; max_cron_threads = 2 +; osv_memory_age_limit = 1.0 +; osv_memory_count_limit = False +; smtp_password = False +; smtp_port = 25 +; smtp_server = localhost +; smtp_ssl = False +; smtp_user = False +; workers = 0 +; xmlrpc = True +; xmlrpc_interface = +; xmlrpc_port = 8069 +; xmlrpcs = True +; xmlrpcs_interface = +; xmlrpcs_port = 8071