From be74ce5bab3adc8a8e39c12762051e20cd8a6d33 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Mon, 11 Jul 2022 13:43:55 +0200 Subject: [PATCH] [REF] Set correct dockerfile, based on odoo/debian ones. (for 12 to 15) --- odoo_openupgrade_wizard/cli/cli_init.py | 21 ++---- .../configuration_version_dependant.py | 49 +------------ .../templates/odoo/12.0/Dockerfile | 69 ++++++++++++++++++ .../templates/odoo/13.0/Dockerfile | 73 +++++++++++++++++++ .../templates/odoo/14.0/Dockerfile | 72 ++++++++++++++++++ .../templates/odoo/15.0/Dockerfile | 70 ++++++++++++++++++ .../templates/odoo/Dockerfile.j2 | 14 ---- ...xt.j2 => extra_debian_requirements.txt.j2} | 0 ...xt.j2 => extra_python_requirements.txt.j2} | 4 - odoo_openupgrade_wizard/tools/tools_system.py | 11 ++- 10 files changed, 302 insertions(+), 81 deletions(-) create mode 100644 odoo_openupgrade_wizard/templates/odoo/12.0/Dockerfile create mode 100644 odoo_openupgrade_wizard/templates/odoo/13.0/Dockerfile create mode 100644 odoo_openupgrade_wizard/templates/odoo/14.0/Dockerfile create mode 100644 odoo_openupgrade_wizard/templates/odoo/15.0/Dockerfile delete mode 100644 odoo_openupgrade_wizard/templates/odoo/Dockerfile.j2 rename odoo_openupgrade_wizard/templates/odoo/{debian_requirements.txt.j2 => extra_debian_requirements.txt.j2} (100%) rename odoo_openupgrade_wizard/templates/odoo/{python_requirements.txt.j2 => extra_python_requirements.txt.j2} (70%) diff --git a/odoo_openupgrade_wizard/cli/cli_init.py b/odoo_openupgrade_wizard/cli/cli_init.py index 382aba8..d1f2f4a 100644 --- a/odoo_openupgrade_wizard/cli/cli_init.py +++ b/odoo_openupgrade_wizard/cli/cli_init.py @@ -3,7 +3,6 @@ from pathlib import Path import click from odoo_openupgrade_wizard.configuration_version_dependant import ( - get_odoo_version_template_value, get_odoo_versions, get_version_options, ) @@ -139,14 +138,14 @@ def init( # Create python requirements file ensure_file_exists_from_template( - path_version / Path("python_requirements.txt"), - "odoo/python_requirements.txt.j2", + path_version / Path("extra_python_requirements.txt"), + "odoo/extra_python_requirements.txt.j2", ) # Create debian requirements file ensure_file_exists_from_template( - path_version / Path("debian_requirements.txt"), - "odoo/debian_requirements.txt.j2", + path_version / Path("extra_debian_requirements.txt"), + "odoo/extra_debian_requirements.txt.j2", ) # Create odoo config file @@ -166,17 +165,7 @@ def init( # Create Dockerfile file ensure_file_exists_from_template( path_version / Path("Dockerfile"), - "odoo/Dockerfile.j2", - odoo_version=odoo_version, - python_major_version=get_odoo_version_template_value( - odoo_version, "python_major_version" - ), - python_minor_version_short=get_odoo_version_template_value( - odoo_version, "python_minor_version_short" - ), - prebuild_wheel_url=get_odoo_version_template_value( - odoo_version, "prebuild_wheel_url" - ), + f"odoo/{odoo_version}/Dockerfile", ) # Create 'src' folder that will contain all the odoo code diff --git a/odoo_openupgrade_wizard/configuration_version_dependant.py b/odoo_openupgrade_wizard/configuration_version_dependant.py index 48c3579..49ff271 100644 --- a/odoo_openupgrade_wizard/configuration_version_dependant.py +++ b/odoo_openupgrade_wizard/configuration_version_dependant.py @@ -5,74 +5,31 @@ from loguru import logger _ODOO_VERSION_TEMPLATES = [ { "version": 8.0, - "python_major_version": "python2", - "python_minor_version_short": "py27", - "prebuild_wheel_url": "https://wheelhouse.acsone.eu/manylinux1", }, { "version": 9.0, - "python_major_version": "python2", - "python_minor_version_short": "py27", - "prebuild_wheel_url": "https://wheelhouse.acsone.eu/manylinux1", }, { "version": 10.0, - "python_major_version": "python2", - "python_minor_version_short": "py27", - "prebuild_wheel_url": "https://wheelhouse.acsone.eu/manylinux1", }, { "version": 11.0, - "python_major_version": "python3", - "python_minor_version_short": "py36", - "prebuild_wheel_url": "https://wheelhouse.acsone.eu/manylinux2014", }, { "version": 12.0, - "python_major_version": "python3", - # Note: doesn't work with latest available version py37 - "python_minor_version_short": "py36", - "prebuild_wheel_url": "https://wheelhouse.acsone.eu/manylinux2014", }, { - "version": 13.0, # OK. - "python_major_version": "python3", - # Note: doesn't work with latest available version py37 - "python_minor_version_short": "py36", - "prebuild_wheel_url": "https://wheelhouse.acsone.eu/manylinux2014", + "version": 13.0, }, { - "version": 14.0, # OK - "python_major_version": "python3", - "python_minor_version_short": "py39", - "prebuild_wheel_url": "https://wheelhouse.acsone.eu/manylinux2014", + "version": 14.0, }, { - "version": 15.0, # OK - "python_major_version": "python3", - "python_minor_version_short": "py39", - "prebuild_wheel_url": "https://wheelhouse.acsone.eu/manylinux2014", + "version": 15.0, }, ] -def get_odoo_version_template_value(version: float, key: str) -> str: - """Return a value depending on a odoo given version and key. - Possible key: - - python_major_version. (python2, python3) - - python_minor_version_short. (py27, py36, ...) - - prebuild_wheel_url. - """ - version_template = False - for odoo_version_template in _ODOO_VERSION_TEMPLATES: - if odoo_version_template["version"] == version: - version_template = odoo_version_template - break - else: - raise ValueError - return version_template[key] - - def get_version_options(mode: str) -> list: """Get options available for version click argument. Arguments: diff --git a/odoo_openupgrade_wizard/templates/odoo/12.0/Dockerfile b/odoo_openupgrade_wizard/templates/odoo/12.0/Dockerfile new file mode 100644 index 0000000..4eeef05 --- /dev/null +++ b/odoo_openupgrade_wizard/templates/odoo/12.0/Dockerfile @@ -0,0 +1,69 @@ +# : Copy of https://github.com/odoo/odoo/blob/12.0/setup/package.dfdebian + +FROM debian:stretch + +# 1. Official Odoo Dockerfile. +# Removing: postgresql, locales, rsync + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update -qq && \ + apt-get upgrade -qq -y && \ + apt-get install -yq \ + adduser \ + dh-python \ + packaging-dev \ + postgresql-client \ + python3 \ + python3-babel \ + python3-dateutil \ + python3-decorator \ + python3-docutils \ + python3-gevent \ + python3-html2text \ + python3-pil \ + python3-jinja2 \ + python3-libsass \ + python3-lxml \ + python3-mako \ + python3-mock \ + python3-ofxparse \ + python3-passlib \ + python3-psutil \ + python3-psycopg2 \ + python3-pydot \ + python3-pyparsing \ + python3-pypdf2 \ + python3-reportlab \ + python3-requests \ + python3-serial \ + python3-suds \ + python3-tz \ + python3-usb \ + python3-vatnumber \ + python3-vobject \ + python3-werkzeug \ + python3-xlsxwriter \ + && rm -rf /var/lib/apt/lists/* + +# 2. Add 2 python dependency files and 1 debian dependency file + +COPY ./src/odoo/requirements.txt /odoo_python_requirements.txt +COPY extra_python_requirements.txt /extra_python_requirements.txt +COPY extra_debian_requirements.txt /extra_debian_requirements.txt + +# 3. Install Debian packages +RUN apt-get update || true \ + && apt-get install -y\ + # To allow to run pip install + python3-pip\ + # For python-ldap + libldap2-dev ldap-utils libsasl2-dev\ + && xargs apt-get install -y --no-install-recommends Install Python librairies +RUN python3 -m pip install --no-cache-dir -r /odoo_python_requirements.txt +RUN python3 -m pip install --no-cache-dir -r /extra_python_requirements.txt + +RUN useradd --uid 1000 odoo diff --git a/odoo_openupgrade_wizard/templates/odoo/13.0/Dockerfile b/odoo_openupgrade_wizard/templates/odoo/13.0/Dockerfile new file mode 100644 index 0000000..a394752 --- /dev/null +++ b/odoo_openupgrade_wizard/templates/odoo/13.0/Dockerfile @@ -0,0 +1,73 @@ +# : Copy of https://github.com/odoo/odoo/blob/13.0/setup/package.dfdebian + +FROM debian:buster + +# 1. Official Odoo Dockerfile. +# Removing: postgresql, locales, rsync + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update -qq && \ + apt-get upgrade -qq -y && \ + apt-get install -qq -y\ + adduser \ + dh-python \ + packaging-dev \ + postgresql-client \ + python3 \ + python3-babel \ + python3-dateutil \ + python3-decorator \ + python3-docutils \ + python3-gevent \ + python3-pil \ + python3-jinja2 \ + python3-libsass \ + python3-lxml \ + python3-mako \ + python3-mock \ + python3-ofxparse \ + python3-passlib \ + python3-polib \ + python3-psutil \ + python3-psycopg2 \ + python3-pydot \ + python3-pyparsing \ + python3-pypdf2 \ + python3-qrcode \ + python3-renderpm \ + python3-reportlab \ + python3-requests \ + python3-serial \ + python3-tz \ + python3-usb \ + python3-vatnumber \ + python3-vobject \ + python3-werkzeug \ + python3-xlsxwriter \ + python3-zeep \ + && rm -rf /var/lib/apt/lists/* + +# 2. Add 2 python dependency files and 1 debian dependency file + +COPY ./src/odoo/requirements.txt /odoo_python_requirements.txt +COPY extra_python_requirements.txt /extra_python_requirements.txt +COPY extra_debian_requirements.txt /extra_debian_requirements.txt + +# 3. Install Debian packages +RUN apt-get update || true \ + && apt-get install -y\ + # To allow to run pip install + python3-pip\ + # For python-ldap + libldap2-dev ldap-utils libsasl2-dev\ + # For cffi + build-essential libssl-dev libffi-dev python-dev\ + && xargs apt-get install -y --no-install-recommends Install Python librairies +RUN python3 -m pip install --no-cache-dir -r /odoo_python_requirements.txt +RUN python3 -m pip install --no-cache-dir -r /extra_python_requirements.txt + +RUN useradd --uid 1000 odoo diff --git a/odoo_openupgrade_wizard/templates/odoo/14.0/Dockerfile b/odoo_openupgrade_wizard/templates/odoo/14.0/Dockerfile new file mode 100644 index 0000000..a0056a2 --- /dev/null +++ b/odoo_openupgrade_wizard/templates/odoo/14.0/Dockerfile @@ -0,0 +1,72 @@ +# : Copy of https://github.com/odoo/odoo/blob/14.0/setup/package.dfdebian + +FROM debian:buster + +# 1. Official Odoo Dockerfile. +# Removing: postgresql, locales, rsync + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update -qq && \ + apt-get upgrade -qq -y && \ + apt-get install -qq -y\ + adduser \ + dh-python \ + packaging-dev \ + postgresql-client \ + python3 \ + python3-babel \ + python3-dateutil \ + python3-decorator \ + python3-docutils \ + python3-gevent \ + python3-pil \ + python3-jinja2 \ + python3-libsass \ + python3-lxml \ + python3-mako \ + python3-ofxparse \ + python3-passlib \ + python3-polib \ + python3-psutil \ + python3-psycopg2 \ + python3-pydot \ + python3-pypdf2 \ + python3-qrcode \ + python3-renderpm \ + python3-reportlab \ + python3-requests \ + python3-serial \ + python3-setuptools \ + python3-stdnum \ + python3-tz \ + python3-usb \ + python3-vobject \ + python3-werkzeug \ + python3-xlsxwriter \ + python3-zeep \ + && rm -rf /var/lib/apt/lists/* + +# 2. Add 2 python dependency files and 1 debian dependency file + +COPY ./src/odoo/requirements.txt /odoo_python_requirements.txt +COPY extra_python_requirements.txt /extra_python_requirements.txt +COPY extra_debian_requirements.txt /extra_debian_requirements.txt + +# 3. Install Debian packages +RUN apt-get update || true \ + && apt-get install -y\ + # To allow to run pip install + python3-pip\ + # For python-ldap + libldap2-dev ldap-utils libsasl2-dev\ + # For cffi + build-essential libssl-dev libffi-dev python-dev\ + && xargs apt-get install -y --no-install-recommends Install Python librairies +RUN python3 -m pip install --no-cache-dir -r /odoo_python_requirements.txt +RUN python3 -m pip install --no-cache-dir -r /extra_python_requirements.txt + +RUN useradd --uid 1000 odoo diff --git a/odoo_openupgrade_wizard/templates/odoo/15.0/Dockerfile b/odoo_openupgrade_wizard/templates/odoo/15.0/Dockerfile new file mode 100644 index 0000000..c0751d4 --- /dev/null +++ b/odoo_openupgrade_wizard/templates/odoo/15.0/Dockerfile @@ -0,0 +1,70 @@ +# : Copy of https://github.com/odoo/odoo/blob/15.0/setup/package.dfdebian + +FROM debian:bullseye + +# 1. Official Odoo Dockerfile. +# Removing: postgresql, locales, rsync + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update -qq && \ + apt-get upgrade -qq -y && \ + apt-get install -qq -y\ + adduser \ + dh-python \ + packaging-dev \ + postgresql-client \ + python3 \ + python3-babel \ + python3-dateutil \ + python3-decorator \ + python3-docutils \ + python3-gevent \ + python3-pil \ + python3-jinja2 \ + python3-libsass \ + python3-lxml \ + python3-ofxparse \ + python3-passlib \ + python3-polib \ + python3-psutil \ + python3-psycopg2 \ + python3-pydot \ + python3-openssl \ + python3-pypdf2 \ + python3-qrcode \ + python3-renderpm \ + python3-reportlab \ + python3-requests \ + python3-serial \ + python3-setuptools \ + python3-stdnum \ + python3-tz \ + python3-usb \ + python3-vobject \ + python3-werkzeug \ + python3-xlsxwriter \ + python3-zeep \ + && rm -rf /var/lib/apt/lists/* + +# 2. Add 2 python dependency files and 1 debian dependency file + +COPY ./src/odoo/requirements.txt /odoo_python_requirements.txt +COPY extra_python_requirements.txt /extra_python_requirements.txt +COPY extra_debian_requirements.txt /extra_debian_requirements.txt + +# 3. Install Debian packages +RUN apt-get update || true \ + && apt-get install -y\ + # To allow to run pip install + python3-pip\ + # For python-ldap + libldap2-dev ldap-utils libsasl2-dev\ + && xargs apt-get install -y --no-install-recommends Install Python librairies +RUN python3 -m pip install --no-cache-dir -r /odoo_python_requirements.txt +RUN python3 -m pip install --no-cache-dir -r /extra_python_requirements.txt + +RUN useradd --uid 1000 odoo diff --git a/odoo_openupgrade_wizard/templates/odoo/Dockerfile.j2 b/odoo_openupgrade_wizard/templates/odoo/Dockerfile.j2 deleted file mode 100644 index e673b17..0000000 --- a/odoo_openupgrade_wizard/templates/odoo/Dockerfile.j2 +++ /dev/null @@ -1,14 +0,0 @@ -FROM ghcr.io/acsone/odoo-bedrock:{{ odoo_version }}-{{python_minor_version_short}}-latest - -COPY ./src/odoo/requirements.txt /odoo_requirements.txt -COPY python_requirements.txt /python_requirements.txt -COPY debian_requirements.txt /debian_requirements.txt - -# 2. Install extra debian packages -RUN apt-get update || true \ - && xargs apt-get install -y --no-install-recommends