odoo/docker

recent docker pull from odoo:16 cause AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'

dhamanutd opened this issue · 2 comments

I recently pull docker for odoo:16 image, and I get this issue when running it.

odoo-1  | 2024-01-12 09:34:32,019 1 CRITICAL ? odoo.modules.module: Couldn't load module web
odoo-1  | 2024-01-12 09:34:32,019 1 CRITICAL ? odoo.modules.module: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
odoo-1  | 2024-01-12 09:34:32,019 1 ERROR ? odoo.service.server: Failed to load server-wide module `web`.
odoo-1  | The `web` module is provided by the addons found in the `openerp-web` project.
odoo-1  | Maybe you forgot to add those addons in your addons_path configuration.
odoo-1  | Traceback (most recent call last):
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 1248, in load_server_wide_modules
odoo-1  |     odoo.modules.module.load_openerp_module(m)
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 471, in load_openerp_module
odoo-1  |     __import__('odoo.addons.' + module_name)
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/web/__init__.py", line 4, in <module>
odoo-1  |     from . import controllers
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/__init__.py", line 5, in <module>
odoo-1  |     from . import database
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/database.py", line 19, in <module>
odoo-1  |     from odoo.addons.base.models.ir_qweb import render as qweb_render
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/base/__init__.py", line 5, in <module>
odoo-1  |     from . import models
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/base/models/__init__.py", line 21, in <module>
odoo-1  |     from . import ir_mail_server
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_mail_server.py", line 19, in <module>
odoo-1  |     from OpenSSL import crypto as SSLCrypto
odoo-1  |   File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
odoo-1  |     from OpenSSL import crypto, SSL
odoo-1  |   File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1556, in <module>
odoo-1  |     class X509StoreFlags(object):
odoo-1  |   File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1577, in X509StoreFlags
odoo-1  |     CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
odoo-1  | AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
odoo-1  | 2024-01-12 09:34:32,022 1 CRITICAL ? odoo.modules.module: Couldn't load module base
odoo-1  | 2024-01-12 09:34:32,022 1 CRITICAL ? odoo.modules.module: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'
odoo-1  | 2024-01-12 09:34:32,022 1 ERROR ? odoo.service.server: Failed to load server-wide module `base`.
odoo-1  | Traceback (most recent call last):
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 1248, in load_server_wide_modules
odoo-1  |     odoo.modules.module.load_openerp_module(m)
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/modules/module.py", line 471, in load_openerp_module
odoo-1  |     __import__('odoo.addons.' + module_name)
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/base/__init__.py", line 5, in <module>
odoo-1  |     from . import models
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/base/models/__init__.py", line 21, in <module>
odoo-1  |     from . import ir_mail_server
odoo-1  |   File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_mail_server.py", line 19, in <module>
odoo-1  |     from OpenSSL import crypto as SSLCrypto
odoo-1  |   File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
odoo-1  |     from OpenSSL import crypto, SSL
odoo-1  |   File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1556, in <module>
odoo-1  |     class X509StoreFlags(object):
odoo-1  |   File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 1577, in X509StoreFlags
odoo-1  |     CB_ISSUER_CHECK = _lib.X509_V_FLAG_CB_ISSUER_CHECK
odoo-1  | AttributeError: module 'lib' has no attribute 'X509_V_FLAG_CB_ISSUER_CHECK'

Currently It makes me volume mounting the OpenSSL to library in my device to workaround this issue.

@dhamanutd

Can you reproduce this and share how you do? Can you share your exact docker command and or docker-compose.yml used?

@lathama had been resolved by rearrange the Dockerfile and mount some py library

Here is my Dockerfile

FROM odoo:16.0

USER root

RUN DEBIAN_FRONTEND=noninteractive && \
    apt-get update --fix-missing && \
    apt install python3-pip && apt install tzdata

RUN rm -R /usr/lib/python3/dist-packages/OpenSSL
RUN ln -sf /usr/share/zoneinfo/Asia/Jakarta /etc/localtime
USER odoo

RUN python3 -m pip install cryptography==38.0.2 pdf2image odoo_test_helper coverage firebase-admin google-api-python-client google-auth-httplib2 google-auth-oauthlib html2text

with this docker-compose.yml

version: '3.1'
services:
  odoo:
    image: odoo-local:latest
    build: .
    environment:
      - TZ=Asia/Jakarta
    ports:
      - "8069:8069"
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./configs:/etc/odoo
      - ./modules:/mnt/extra-addons
      - ./lib/cryptography:/usr/lib/python3/dist-packages/cryptography
      - ./lib/OpenSSL:/usr/lib/python3/dist-packages/OpenSSL
    command:
      - /entrypoint.sh
      - odoo 
      - --test-tags
      - training
    
  db:
    image: postgres:13
    environment:
      - TZ=Asia/Jakarta
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_DB=postgres
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U odoo -d postgres"]
      interval: 10s
      timeout: 5s
      retries: 5
    ports:
      - 5432:5432
    volumes:
      - odoo-db-data:/var/lib/postgresql/data
      - ./configs/postgresql.conf:/etc/postgresql/postgresql.conf

volumes:
  odoo-web-data:
  odoo-db-data:

Hope anyone experiencing the same issue with me, can be helped by that.