From cc4554fbaf45136012b3f4b1a5372ccb9f0be9f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com>
Date: Wed, 10 Aug 2022 15:37:10 +0200
Subject: [PATCH] [ADD] version 16.0

---
 .gitlab-ci.yml  |  28 +++++++---
 14.0.Dockerfile | 133 -----------------------------------------------
 16.0.Dockerfile | 135 ++++++++++++++++++++++++++++++++++++++++++++++++
 README.md       |  14 ++---
 4 files changed, 164 insertions(+), 146 deletions(-)
 delete mode 100644 14.0.Dockerfile
 create mode 100644 16.0.Dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index be9d076..3278d5e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,11 +1,11 @@
-image: docker:20.10.7
+image: docker:20.10.17
 
 docker-build-10.0:
   # Official docker image.
-  image: docker:20.10.7
+  image: docker:20.10.17
   stage: build
   services:
-    - docker:20.10.7-dind
+    - docker:20.10.17-dind
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
   script:
@@ -16,10 +16,10 @@ docker-build-10.0:
 
 docker-build-12.0:
   # Official docker image.
-  image: docker:20.10.7
+  image: docker:20.10.17
   stage: build
   services:
-    - docker:20.10.7-dind
+    - docker:20.10.17-dind
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
   script:
@@ -34,10 +34,10 @@ docker-build-12.0:
 
 docker-build-14.0:
   # Official docker image.
-  image: docker:20.10.7
+  image: docker:20.10.17
   stage: build
   services:
-    - docker:20.10.7-dind
+    - docker:20.10.17-dind
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
   script:
@@ -45,3 +45,17 @@ docker-build-14.0:
     - docker push "$CI_REGISTRY_IMAGE:14.0"
   only:
     - "14.0"
+
+docker-build-16.0:
+  # Official docker image.
+  image: docker:20.10.17
+  stage: build
+  services:
+    - docker:20.10.17-dind
+  before_script:
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+  script:
+    - docker build --pull -f 16.0.Dockerfile -t "$CI_REGISTRY_IMAGE:16.0" .
+    - docker push "$CI_REGISTRY_IMAGE:16.0"
+  only:
+    - "16.0"
diff --git a/14.0.Dockerfile b/14.0.Dockerfile
deleted file mode 100644
index d963091..0000000
--- a/14.0.Dockerfile
+++ /dev/null
@@ -1,133 +0,0 @@
-FROM python:3.9-slim-buster
-MAINTAINER Le Filament <https://le-filament.com>
-
-ENV APT_DEPS='build-essential libldap2-dev libpq-dev libsasl2-dev' \
-    LANG=C.UTF-8 \
-    LC_ALL=C.UTF-8 \
-    PGDATABASE=odoo
-
-RUN set -x; \
-        apt-get update &&\
-        apt-get install -y --no-install-recommends \
-            curl \
-            git \
-            gnupg \
-            npm \
-            openssh-client \
-            xmlsec1 &&\
-        echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-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/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.buster_amd64.deb &&\
-        echo 'ea8277df4297afc507c61122f3c349af142f31e5 wkhtmltox.deb' | sha1sum -c - &&\
-        apt-get update &&\
-        apt-get install -y --no-install-recommends ./wkhtmltox.deb &&\
-        apt-get install -y --no-install-recommends postgresql-client &&\
-        apt-get install -y --no-install-recommends ${APT_DEPS} &&\
-        pip3 install -r https://raw.githubusercontent.com/OCA/OCB/14.0/requirements.txt &&\
-        pip3 install phonenumbers simplejson gevent==20.12.1 openupgradelib pdfminer.six PyYAML zxcvbn &&\
-        apt-get -y purge ${APT_DEPS} &&\
-        apt-get -y autoremove &&\
-        rm -rf /var/lib/apt/lists/* wkhtmltox.deb
-
-# 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
-RUN set -x; \
-        useradd -l --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}" &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/OCB.git /opt/odoo/odoo &&\
-        rm -rf /opt/odoo/odoo/.git &&\
-        find /opt/odoo/odoo/addons/*/i18n/ /opt/odoo/odoo/odoo/addons/base/i18n/ -type f -not -name 'fr.po' -delete &&\
-        chown -R odoo:odoo /opt/odoo
-
-# Install Odoo OCA default dependencies
-RUN set -x; \
-        mkdir -p /tmp/oca-repos/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/account-financial-reporting.git /tmp/oca-repos/account-financial-reporting &&\
-        mv /tmp/oca-repos/account-financial-reporting/account_tax_balance /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/account-financial-tools.git /tmp/oca-repos/account-financial-tools &&\
-        mv /tmp/oca-repos/account-financial-tools/account_lock_date_update \
-           /tmp/oca-repos/account-financial-tools/account_move_name_sequence \
-           /opt/odoo/additional_addons/ &&\
-        # Until migrated to OCA (https://github.com/OCA/account-financial-tools/pull/1304)
-        git clone -b 14.0-add-partner_account_reconciliable --depth 1 https://github.com/lefilament/account-financial-tools.git /tmp/oca-repos/account-financial-tools-lf &&\
-        mv /tmp/oca-repos/account-financial-tools-lf/partner_account_reconciliable /opt/odoo/additional_addons/ &&\
-        # Until migrated to OCA (https://github.com/OCA/account-invoicing/pull/897)
-        git clone -b 14.0-mig-sale-timesheet-invoice-description --depth 1 https://github.com/akretion/account-invoicing.git /tmp/oca-repos/account-invoicing-ak &&\
-        mv /tmp/oca-repos/account-invoicing-ak/sale_timesheet_invoice_description \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/account-reconcile.git /tmp/oca-repos/account-reconcile &&\
-        mv /tmp/oca-repos/account-reconcile/account_reconciliation_widget \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/bank-statement-import.git /tmp/oca-repos/bank-statement-import &&\
-        mv /tmp/oca-repos/bank-statement-import/account_statement_import \
-           /tmp/oca-repos/bank-statement-import/account_statement_import_ofx \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/crm.git /tmp/oca-repos/crm &&\
-        mv /tmp/oca-repos/crm/crm_stage_probability /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/partner-contact.git /tmp/oca-repos/partner-contact &&\
-        mv /tmp/oca-repos/partner-contact/partner_disable_gravatar \
-           /tmp/oca-repos/partner-contact/partner_firstname \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/project.git /tmp/oca-repos/project &&\
-        mv /tmp/oca-repos/project/project_category \
-           /tmp/oca-repos/project/project_status \
-           /tmp/oca-repos/project/project_task_default_stage \
-           /tmp/oca-repos/project/project_template \
-           /tmp/oca-repos/project/project_timeline \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/server-auth.git /tmp/oca-repos/server-auth &&\
-        mv /tmp/oca-repos/server-auth/password_security \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/server-brand.git /tmp/oca-repos/server-brand &&\
-        mv /tmp/oca-repos/server-brand/disable_odoo_online \
-           /tmp/oca-repos/server-brand/remove_odoo_enterprise \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/server-tools.git /tmp/oca-repos/server-tools &&\
-        mv /tmp/oca-repos/server-tools/base_search_fuzzy \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/server-ux.git /tmp/oca-repos/server-ux &&\
-        mv /tmp/oca-repos/server-ux/base_technical_features \
-           /tmp/oca-repos/server-ux/date_range \
-           /tmp/oca-repos/server-ux/mass_editing \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/social.git /tmp/oca-repos/social &&\
-        mv /tmp/oca-repos/social/base_search_mail_content \
-           /tmp/oca-repos/social/mail_debrand \
-           /opt/odoo/additional_addons/ &&\
-        git clone -b 14.0 --depth 1 https://github.com/OCA/web.git /tmp/oca-repos/web &&\
-        mv /tmp/oca-repos/web/web_environment_ribbon \
-           /tmp/oca-repos/web/web_responsive \
-           /tmp/oca-repos/web/web_no_bubble \
-           /tmp/oca-repos/web/web_timeline \
-           /opt/odoo/additional_addons/ &&\
-        rm -rf /tmp/oca-repos/ &&\
-        find /opt/odoo/additional_addons/*/i18n/ -type f -not -name 'fr.po' -delete &&\
-        # Install Le Filament default dependency
-        git clone -b 14.0 --depth 1 https://sources.le-filament.com/lefilament/remove_login_links.git /opt/odoo/private_addons/remove_login_links &&\
-        chown -R odoo:odoo /opt/odoo
-
-# Copy entrypoint script and Odoo configuration file
-COPY ./entrypoint.sh /
-COPY ./odoo.conf /opt/odoo/etc/odoo.conf
-RUN chown odoo:odoo /opt/odoo/etc/odoo.conf
-
-# 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="14.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"
diff --git a/16.0.Dockerfile b/16.0.Dockerfile
new file mode 100644
index 0000000..e420c21
--- /dev/null
+++ b/16.0.Dockerfile
@@ -0,0 +1,135 @@
+FROM python:3.10-slim-bullseye
+MAINTAINER Le Filament <https://le-filament.com>
+
+ENV APT_DEPS='build-essential libldap2-dev libpq-dev libsasl2-dev' \
+    LANG=C.UTF-8 \
+    LC_ALL=C.UTF-8 \
+    PGDATABASE=odoo
+
+RUN set -x; \
+        apt-get update &&\
+        apt-get install -y --no-install-recommends \
+            curl \
+            git \
+            gnupg \
+            # npm \
+            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 &&\
+        apt-get install -y --no-install-recommends ./wkhtmltox.deb &&\
+        apt-get install -y --no-install-recommends postgresql-client &&\
+        apt-get install -y --no-install-recommends ${APT_DEPS} &&\
+        # pip3 install -r https://raw.githubusercontent.com/OCA/OCB/16.0/requirements.txt &&\
+        pip3 install -r https://raw.githubusercontent.com/odoo/odoo/master/requirements.txt &&\
+        pip3 install phonenumbers simplejson openupgradelib pdfminer.six PyYAML zxcvbn &&\
+        apt-get -y purge ${APT_DEPS} &&\
+        apt-get -y autoremove &&\
+        rm -rf /var/lib/apt/lists/* wkhtmltox.deb
+
+# 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
+RUN set -x; \
+        useradd -l --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}" &&\
+        # git clone -b 16.0 --depth 1 https://github.com/OCA/OCB.git /opt/odoo/odoo &&\
+        git clone -b master --depth 1 https://github.com/odoo/odoo.git /opt/odoo/odoo &&\
+        rm -rf /opt/odoo/odoo/.git &&\
+        find /opt/odoo/odoo/addons/*/i18n/ /opt/odoo/odoo/odoo/addons/base/i18n/ -type f -not -name 'fr.po' -delete &&\
+        chown -R odoo:odoo /opt/odoo
+
+# Install Odoo OCA default dependencies - These modules do not exist for now
+#RUN set -x; \
+#        mkdir -p /tmp/oca-repos/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/account-financial-reporting.git /tmp/oca-repos/account-financial-reporting &&\
+#        mv /tmp/oca-repos/account-financial-reporting/account_tax_balance /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/account-financial-tools.git /tmp/oca-repos/account-financial-tools &&\
+#        mv /tmp/oca-repos/account-financial-tools/account_lock_date_update \
+#           /tmp/oca-repos/account-financial-tools/account_move_name_sequence \
+#           /opt/odoo/additional_addons/ &&\
+#        # Until migrated to OCA (https://github.com/OCA/account-financial-tools/pull/1304)
+#        git clone -b 16.0-add-partner_account_reconciliable --depth 1 https://github.com/lefilament/account-financial-tools.git /tmp/oca-repos/account-financial-tools-lf &&\
+#        mv /tmp/oca-repos/account-financial-tools-lf/partner_account_reconciliable /opt/odoo/additional_addons/ &&\
+#        # Until migrated to OCA (https://github.com/OCA/account-invoicing/pull/897)
+#        git clone -b 16.0-mig-sale-timesheet-invoice-description --depth 1 https://github.com/akretion/account-invoicing.git /tmp/oca-repos/account-invoicing-ak &&\
+#        mv /tmp/oca-repos/account-invoicing-ak/sale_timesheet_invoice_description \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/account-reconcile.git /tmp/oca-repos/account-reconcile &&\
+#        mv /tmp/oca-repos/account-reconcile/account_reconciliation_widget \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/bank-statement-import.git /tmp/oca-repos/bank-statement-import &&\
+#        mv /tmp/oca-repos/bank-statement-import/account_statement_import \
+#           /tmp/oca-repos/bank-statement-import/account_statement_import_ofx \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/crm.git /tmp/oca-repos/crm &&\
+#        mv /tmp/oca-repos/crm/crm_stage_probability /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/partner-contact.git /tmp/oca-repos/partner-contact &&\
+#        mv /tmp/oca-repos/partner-contact/partner_disable_gravatar \
+#           /tmp/oca-repos/partner-contact/partner_firstname \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/project.git /tmp/oca-repos/project &&\
+#        mv /tmp/oca-repos/project/project_category \
+#           /tmp/oca-repos/project/project_status \
+#           /tmp/oca-repos/project/project_task_default_stage \
+#           /tmp/oca-repos/project/project_template \
+#           /tmp/oca-repos/project/project_timeline \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/server-auth.git /tmp/oca-repos/server-auth &&\
+#        mv /tmp/oca-repos/server-auth/password_security \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/server-brand.git /tmp/oca-repos/server-brand &&\
+#        mv /tmp/oca-repos/server-brand/disable_odoo_online \
+#           /tmp/oca-repos/server-brand/remove_odoo_enterprise \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/server-tools.git /tmp/oca-repos/server-tools &&\
+#        mv /tmp/oca-repos/server-tools/base_search_fuzzy \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/server-ux.git /tmp/oca-repos/server-ux &&\
+#        mv /tmp/oca-repos/server-ux/base_technical_features \
+#           /tmp/oca-repos/server-ux/date_range \
+#           /tmp/oca-repos/server-ux/mass_editing \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/social.git /tmp/oca-repos/social &&\
+#        mv /tmp/oca-repos/social/base_search_mail_content \
+#           /tmp/oca-repos/social/mail_debrand \
+#           /opt/odoo/additional_addons/ &&\
+#        git clone -b 16.0 --depth 1 https://github.com/OCA/web.git /tmp/oca-repos/web &&\
+#        mv /tmp/oca-repos/web/web_environment_ribbon \
+#           /tmp/oca-repos/web/web_responsive \
+#           /tmp/oca-repos/web/web_no_bubble \
+#           /tmp/oca-repos/web/web_timeline \
+#           /opt/odoo/additional_addons/ &&\
+#        rm -rf /tmp/oca-repos/ &&\
+#        find /opt/odoo/additional_addons/*/i18n/ -type f -not -name 'fr.po' -delete &&\
+#        # Install Le Filament default dependency
+#        git clone -b 16.0 --depth 1 https://sources.le-filament.com/lefilament/remove_login_links.git /opt/odoo/private_addons/remove_login_links &&\
+#        chown -R odoo:odoo /opt/odoo
+
+# Copy entrypoint script and Odoo configuration file
+COPY ./entrypoint.sh /
+COPY ./odoo.conf /opt/odoo/etc/odoo.conf
+RUN chown odoo:odoo /opt/odoo/etc/odoo.conf
+
+# 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="16.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"
diff --git a/README.md b/README.md
index 6911496..7ef40ed 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Basic Odoo docker including OCB 10.0/12.0/14.0 and some of OCA repos/addons
+# Basic Odoo docker including OCB 10.0/12.0/14.0/16.0 and some of OCA repos/addons
 
 These docker images are now maintained on [Le Filament GitLab server](https://sources.le-filament.com/lefilament/odoo_docker)
 
@@ -6,13 +6,14 @@ These docker images are now maintained on [Le Filament GitLab server](https://so
 
 This Docker is inspired from the ones from [Odoo](https://github.com/odoo/docker), [Tecnativa](https://github.com/Tecnativa/doodba) and [Elico Corporation](https://github.com/Elico-Corp/odoo-docker).
 
-It creates a functional Odoo Docker of limited size (< 400 MB), including Odoo 10.0 or 12.0 or 14.0 from [OCA/OCB](https://github.com/oca/ocb), and also a few addons from [OCA](https://github.com/oca).
+It creates a functional Odoo Docker of limited size (< 400 MB), including Odoo 10.0 or 12.0 or 14.0 or 16.0 from [OCA/OCB](https://github.com/oca/ocb), and also a few addons from [OCA](https://github.com/oca).
 
 In order to reduce as much as possible the size of the Docker, only French translations are kept and .git directories are removed.
 For people needing other languages than English or French, a 12.0_ml image is also provided.
 Also, some extra modules may need python 3.6 for Odoo v12 (python 3.5 by default on 12.0 image), therefore a specific 12.0_py3.6 has been created.
 
 The following OCA addons are included by default in this image (in v14.0):
+Note: since Odoo v16.0 is not yet operational, no OCA modules exist for that version
 ```yaml
   - repo: account-financial-reporting
     modules:
@@ -71,6 +72,7 @@ docker pull lefilament/odoo:12.0
 docker pull lefilament/odoo:12.0_ml
 docker pull lefilament/odoo:12.0_py3.6
 docker pull lefilament/odoo:14.0
+docker pull lefilament/odoo:16.0
 ```
 
 Note that v10.0 version is not updated nightly like the other ones since there are almost no change on corresponding codes. This 10.0 version might be updated in case security fixes are added to corresponding code.
@@ -82,8 +84,8 @@ docker-compose example is provided below:
 version: "2.1"
 services:
     odoo:
-        image: lefilament/odoo:14.0
-        container_name: odoo14
+        image: lefilament/odoo:16.0
+        container_name: odoo16
         depends_on:
             - db
         tty: true
@@ -94,8 +96,8 @@ services:
             - odoo
 
     db:
-        image: postgres:13-alpine
-        container_name: odoo14_db
+        image: postgres:14-alpine
+        container_name: odoo16_db
         environment:
             POSTGRES_USER: "odoo"
             POSTGRES_PASSWORD: "odoo"
-- 
GitLab