Browse Source

removed old docker related files not working on susan

Lou 2 years ago
parent
commit
a5a419e849
7 changed files with 283 additions and 63 deletions
  1. 121
    0
      Dockerfile
  2. 1
    63
      README.md
  3. 4
    0
      build.sh
  4. 36
    0
      docker-compose.yml
  5. 51
    0
      entrypoint.sh
  6. 38
    0
      odoo.conf
  7. 32
    0
      wait-for-psql.py

+ 121
- 0
Dockerfile View File

@@ -0,0 +1,121 @@
1
+FROM python:3.9-slim-buster
2
+MAINTAINER CLI <https://cli.coop>
3
+
4
+ENV APT_DEPS='build-essential libldap2-dev libpq-dev libsasl2-dev' \
5
+    LANG=C.UTF-8 \
6
+    LC_ALL=C.UTF-8 \
7
+    PGDATABASE=odoo
8
+
9
+RUN set -x; \
10
+        apt-get update &&\
11
+        apt-get install -y --no-install-recommends \
12
+            curl \
13
+            git \
14
+            gnupg \
15
+            npm \
16
+            openssh-client &&\
17
+        echo 'deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main' >> /etc/apt/sources.list.d/postgresql.list &&\
18
+        curl -SL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - &&\
19
+        curl -o wkhtmltox.deb -SL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_arm64.deb &&\
20
+        echo '43d0db99ab0e6b5f60b465a49c764c50d6b31337 wkhtmltox.deb' | sha1sum -c - &&\
21
+        apt-get update &&\
22
+        apt-get install -y --no-install-recommends ./wkhtmltox.deb &&\
23
+        apt-get install -y --no-install-recommends postgresql-client &&\
24
+        apt-get install -y --no-install-recommends ${APT_DEPS} &&\
25
+        pip3 install -r https://raw.githubusercontent.com/OCA/OCB/14.0/requirements.txt &&\
26
+        pip3 install phonenumbers simplejson gevent==20.12.1 PyYAML zxcvbn &&\
27
+        apt-get -y purge ${APT_DEPS} &&\
28
+        apt-get -y autoremove &&\
29
+        rm -rf /var/lib/apt/lists/* wkhtmltox.deb
30
+
31
+# Add Git Known Hosts
32
+#COPY ./ssh_known_git_hosts /root/.ssh/known_hosts
33
+
34
+# Install Odoo and remove not French translations and .git directory to limit amount of data used by container
35
+RUN set -x; \
36
+        useradd -l --create-home --home-dir /opt/odoo --no-log-init odoo &&\
37
+        /bin/bash -c "mkdir -p /opt/odoo/{etc,odoo,additional_addons,private_addons,data,private}" &&\
38
+        git clone -b 14.0 --depth 1 https://github.com/OCA/OCB.git /opt/odoo/odoo &&\
39
+        rm -rf /opt/odoo/odoo/.git &&\
40
+        chown -R odoo:odoo /opt/odoo
41
+
42
+# Install Odoo OCA default dependencies
43
+RUN set -x; \
44
+        mkdir -p /tmp/oca-repos/ &&\
45
+        git clone -b 14.0 --depth 1 https://github.com/OCA/account-financial-reporting.git /tmp/oca-repos/account-financial-reporting &&\
46
+        mv /tmp/oca-repos/account-financial-reporting/account_tax_balance /opt/odoo/additional_addons/ &&\
47
+        git clone -b 14.0 --depth 1 https://github.com/OCA/account-financial-tools.git /tmp/oca-repos/account-financial-tools &&\
48
+        mv /tmp/oca-repos/account-financial-tools/account_lock_date_update \
49
+           /opt/odoo/additional_addons/ &&\
50
+        # Comment out modules not yet migrated on OCA for v14
51
+        #git clone -b 14.0 --depth 1 https://github.com/OCA/account-invoicing.git /tmp/oca-repos/account-invoicing &&\
52
+        #mv /tmp/oca-repos/account-invoicing/sale_timesheet_invoice_description \
53
+        #   /opt/odoo/additional_addons/ &&\
54
+        git clone -b 14.0 --depth 1 https://github.com/OCA/bank-statement-import.git /tmp/oca-repos/bank-statement-import &&\
55
+        mv /tmp/oca-repos/bank-statement-import/account_statement_import \
56
+           /tmp/oca-repos/bank-statement-import/account_statement_import_ofx \
57
+           /opt/odoo/additional_addons/ &&\
58
+        git clone -b 14.0 --depth 1 https://github.com/OCA/partner-contact.git /tmp/oca-repos/partner-contact &&\
59
+        mv /tmp/oca-repos/partner-contact/partner_disable_gravatar \
60
+           /tmp/oca-repos/partner-contact/partner_firstname \
61
+           /opt/odoo/additional_addons/ &&\
62
+        git clone -b 14.0 --depth 1 https://github.com/OCA/project.git /tmp/oca-repos/project &&\
63
+        mv /tmp/oca-repos/project/project_category \
64
+           /tmp/oca-repos/project/project_status \
65
+           /tmp/oca-repos/project/project_task_default_stage \
66
+           /tmp/oca-repos/project/project_template \
67
+           /tmp/oca-repos/project/project_timeline \
68
+           /opt/odoo/additional_addons/ &&\
69
+        git clone -b 14.0 --depth 1 https://github.com/OCA/server-auth.git /tmp/oca-repos/server-auth &&\
70
+        mv /tmp/oca-repos/server-auth/password_security \
71
+           /opt/odoo/additional_addons/ &&\
72
+        git clone -b 14.0 --depth 1 https://github.com/OCA/server-brand.git /tmp/oca-repos/server-brand &&\
73
+        mv /tmp/oca-repos/server-brand/disable_odoo_online \
74
+           /tmp/oca-repos/server-brand/remove_odoo_enterprise \
75
+           /opt/odoo/additional_addons/ &&\
76
+        git clone -b 14.0 --depth 1 https://github.com/OCA/server-tools.git /tmp/oca-repos/server-tools &&\
77
+        mv /tmp/oca-repos/server-tools/base_search_fuzzy \
78
+           /opt/odoo/additional_addons/ &&\
79
+        git clone -b 14.0 --depth 1 https://github.com/OCA/server-ux.git /tmp/oca-repos/server-ux &&\
80
+        mv /tmp/oca-repos/server-ux/base_technical_features \
81
+           /tmp/oca-repos/server-ux/date_range \
82
+           /tmp/oca-repos/server-ux/mass_editing \
83
+           /opt/odoo/additional_addons/ &&\
84
+        git clone -b 14.0 --depth 1 https://github.com/OCA/social.git /tmp/oca-repos/social &&\
85
+        mv /tmp/oca-repos/social/base_search_mail_content \
86
+           /tmp/oca-repos/social/mail_debrand \
87
+           /opt/odoo/additional_addons/ &&\
88
+        git clone -b 14.0 --depth 1 https://github.com/OCA/web.git /tmp/oca-repos/web &&\
89
+        mv /tmp/oca-repos/web/web_environment_ribbon \
90
+           /tmp/oca-repos/web/web_responsive \
91
+           /tmp/oca-repos/web/web_timeline \
92
+           /opt/odoo/additional_addons/ &&\
93
+        rm -rf /tmp/oca-repos/ &&\
94
+        find /opt/odoo/additional_addons/*/i18n/ -type f -not -name 'fr.po' -delete &&\
95
+        chown -R odoo:odoo /opt/odoo
96
+
97
+# Copy entrypoint script and Odoo configuration file
98
+COPY ./entrypoint.sh /
99
+COPY ./odoo.conf /opt/odoo/etc/odoo.conf
100
+RUN chown odoo:odoo /opt/odoo/etc/odoo.conf
101
+
102
+# Mount /opt/odoo/data to allow restoring filestore
103
+VOLUME ["/opt/odoo/data/"]
104
+
105
+# Expose Odoo services
106
+EXPOSE 8069
107
+
108
+COPY wait-for-psql.py /usr/local/bin/wait-for-psql.py
109
+
110
+# Set default user when running the container
111
+USER odoo
112
+
113
+# Start
114
+ENTRYPOINT ["/entrypoint.sh"]
115
+CMD ["/opt/odoo/odoo/odoo-bin"  "-c /opt/odoo/etc/odoo.conf"]
116
+
117
+# Metadata
118
+#LABEL org.label-schema.schema-version="14.0" \
119
+#      org.label-schema.vendor=LeFilament \
120
+#      org.label-schema.license=Apache-2.0 \
121
+#      org.label-schema.vcs-url="https://sources.le-filament.com/lefilament/odoo_docker"

+ 1
- 63
README.md View File

@@ -12,68 +12,6 @@ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
12 12
 ```
13 13
 
14 14
 ## Obtenir odoo CBD:
15
-
16
-### Soit via l'image sur le repo
17
-
18
-```sh
19
-docker pull lefilament/odoo:14.0
20 15
 ```
21
-
22
-### Soit en la recréant depuis la recette :
23
-
24
-```yml
25
-echo "version: \"2.1\"
26
-services:
27
-    odoo:
28
-        image: lefilament/odoo:14.0
29
-        container_name: odoo14
30
-        depends_on:
31
-            - db
32
-        tty: true
33
-        volumes:
34
-            - filestore:/opt/odoo/data:z
35
-        restart: unless-stopped
36
-        command:
37
-            - odoo
38
-
39
-    db:
40
-        image: postgres:13-alpine
41
-        container_name: odoo14_db
42
-        environment:
43
-            POSTGRES_USER: \"odoo\"
44
-            POSTGRES_PASSWORD: \"odoo\"
45
-        volumes:
46
-            - db:/var/lib/postgresql/data:z
47
-        restart: unless-stopped
48
-
49
-networks:
50
-    default:
51
-        driver_opts:
52
-            encrypted: 1
53
-
54
-volumes:
55
-    filestore:
56
-    db:
57
-
58
-"> docker-compose.yml
59
-```
60
-
61
-Changer le mot de passe odoo. Ce fichier sera autonatiquement utilisé lors du démarrage du container précisé dans le fichier, à condition d'être le répertoire où se trouve le fichier. On peut donc allumer dans l'ordre :
62
-
63
-```sh
64
-docker-compose up -d db
65
-docker-compose up -d odoo
66
-```
67
-
68
-Pour initier la base de données, sans les données de démonstration :
69
-
70
-```sh
71
-docker-compose exec odoo python3 /opt/odoo/odoo/odoo-bin -c /opt/odoo/etc/odoo.conf --db_host db --db_port 5432 --db_user odoo --db_password LeVraiMotDePasse --init base --stop-after-init --no-http --without-demo=all
72
-```
73
-
74
-On va avoir besoin de git pour ajouter les modules :
75
-
76
-```sh
77
-docker-compose exec -u root odoo apt update
78
-docker-compose exec -u root odoo apt install git -y
16
+sh build.sh
79 17
 ```

+ 4
- 0
build.sh View File

@@ -0,0 +1,4 @@
1
+#!/bin/sh
2
+docker build -t odoo-susan .
3
+docker-compose exec odoo python3 /opt/odoo/odoo/odoo-bin -c /opt/odoo/etc/odoo.conf --db_host db --db_port 5432 --db_user odoo --db_password leMotDePasse --init base --stop-after-init --no-http --without-demo=all
4
+docker-compose --verbose up -d odoo

+ 36
- 0
docker-compose.yml View File

@@ -0,0 +1,36 @@
1
+version: "2.1"
2
+services:
3
+    odoo:
4
+        image: odoo-susan
5
+        depends_on:
6
+            - db
7
+        tty: true
8
+        ports:
9
+            - 8012:8069
10
+        volumes:
11
+            - filestore:/opt/odoo/data:z
12
+            - ./odoo.conf:/etc/odoo
13
+        restart: unless-stopped
14
+        command:
15
+            - odoo
16
+
17
+    db:
18
+        image: postgres:13-alpine
19
+        environment:
20
+            POSTGRES_DB: "odoo"
21
+            POSTGRES_USER: "odoo"
22
+            POSTGRES_PASSWORD: "9fbacb5390fa08b1cea5c141498134021bead7ada7aa1731e6fdd3eae60af92b"
23
+        volumes:
24
+            - db:/var/lib/postgresql/data:z
25
+        restart: unless-stopped
26
+
27
+networks:
28
+    default:
29
+        driver_opts:
30
+            encrypted: 1
31
+
32
+volumes:
33
+    filestore:
34
+    db:
35
+
36
+

+ 51
- 0
entrypoint.sh View File

@@ -0,0 +1,51 @@
1
+#!/bin/bash
2
+echo "ARGS are : $@"
3
+
4
+set -e
5
+ODOO="/opt/odoo/odoo/odoo-bin"
6
+
7
+if [ -v PASSWORD_FILE ]; then
8
+    PASSWORD="$(< $PASSWORD_FILE)"
9
+fi
10
+
11
+# set the postgres database host, port, user and password according to the environment
12
+# and pass them as arguments to the odoo process if not present in the config file
13
+: ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}}
14
+: ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}}
15
+: ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}}
16
+: ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='9fbacb5390fa08b1cea5c141498134021bead7ada7aa1731e6fdd3eae60af92b'}}}
17
+
18
+DB_ARGS=()
19
+function check_config() {
20
+    param="$1"
21
+    value="$2"
22
+    if grep -q -E "^\s*\b${param}\b\s*=" "$ODOO_RC" ; then       
23
+        value=$(grep -E "^\s*\b${param}\b\s*=" "$ODOO_RC" |cut -d " " -f3|sed 's/["\n\r]//g')
24
+    fi;
25
+    DB_ARGS+=("--${param}")
26
+    DB_ARGS+=("${value}")
27
+}
28
+check_config "db_host" "$HOST"
29
+check_config "db_port" "$PORT"
30
+check_config "db_user" "$USER"
31
+check_config "db_password" "$PASSWORD"
32
+
33
+case "$1" in
34
+    -- | odoo)
35
+        shift
36
+        if [[ "$1" == "scaffold" ]] ; then
37
+            exec $ODOO "$@"
38
+        else
39
+            wait-for-psql.py ${DB_ARGS[@]} --timeout=30
40
+            exec $ODOO "$@" "${DB_ARGS[@]}"
41
+        fi
42
+        ;;
43
+    -*)
44
+        wait-for-psql.py ${DB_ARGS[@]} --timeout=30
45
+        exec $ODOO "$@" "${DB_ARGS[@]}"
46
+        ;;
47
+    *)
48
+        exec "$@"
49
+esac
50
+
51
+exit 1

+ 38
- 0
odoo.conf View File

@@ -0,0 +1,38 @@
1
+[options]
2
+addons_path = /opt/odoo/odoo/addons,/opt/odoo/additional_addons,/opt/odoo/private_addons
3
+data_dir = /opt/odoo/data
4
+; admin_passwd = admin
5
+; csv_internal_sep = ,
6
+; db_maxconn = 64
7
+db_name = odoo
8
+; db_template = template1
9
+; dbfilter = .*
10
+; debug_mode = False
11
+; email_from = False
12
+; limit_memory_hard = 2684354560
13
+; limit_memory_soft = 2147483648
14
+; limit_request = 8192
15
+; limit_time_cpu = 60
16
+; limit_time_real = 120
17
+; list_db = True
18
+; log_db = False
19
+; log_handler = [':INFO']
20
+; log_level = info
21
+; logfile = None
22
+; longpolling_port = 8072
23
+; max_cron_threads = 2
24
+; osv_memory_age_limit = 1.0
25
+; osv_memory_count_limit = False
26
+; smtp_password = False
27
+; smtp_port = 25
28
+; smtp_server = localhost
29
+; smtp_ssl = False
30
+; smtp_user = False
31
+unaccent = True
32
+; workers = 0
33
+; xmlrpc = True
34
+; xmlrpc_interface =
35
+; xmlrpc_port = 8069
36
+; xmlrpcs = True
37
+; xmlrpcs_interface =
38
+; xmlrpcs_port = 8071

+ 32
- 0
wait-for-psql.py View File

@@ -0,0 +1,32 @@
1
+#!/usr/bin/env python3
2
+import argparse
3
+import psycopg2
4
+import sys
5
+import time
6
+
7
+
8
+if __name__ == '__main__':
9
+    arg_parser = argparse.ArgumentParser()
10
+    arg_parser.add_argument('--db_host', required=True)
11
+    arg_parser.add_argument('--db_port', required=True)
12
+    arg_parser.add_argument('--db_user', required=True)
13
+    arg_parser.add_argument('--db_password', required=True)
14
+    arg_parser.add_argument('--timeout', type=int, default=5)
15
+
16
+    args = arg_parser.parse_args()
17
+
18
+    start_time = time.time()
19
+    while (time.time() - start_time) < args.timeout:
20
+        try:
21
+            conn = psycopg2.connect(user=args.db_user, host=args.db_host, port=args.db_port, password=args.db_password, dbname='postgres')
22
+            error = ''
23
+            break
24
+        except psycopg2.OperationalError as e:
25
+            error = e
26
+        else:
27
+            conn.close()
28
+        time.sleep(1)
29
+
30
+    if error:
31
+        print("Database connection failure: %s" % error, file=sys.stderr)
32
+        sys.exit(1)

Loading…
Cancel
Save