docker
docker copied to clipboard
Run container as user.
Hi
When trying to run the container as a specify user it wont work.
KeyError: 'getpwuid(): uid not found: 1000'
Traceback (most recent call last):
File "/usr/bin/odoo", line 8, in <module>
odoo.cli.main()
File "/usr/lib/python3/dist-packages/odoo/cli/command.py", line 61, in main
o.run(args)
File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 179, in run
main(args)
File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 126, in main
check_root_user()
File "/usr/lib/python3/dist-packages/odoo/cli/server.py", line 40, in check_root_user
if getpass.getuser() == 'root':
File "/usr/lib/python3.9/getpass.py", line 169, in getuser
return pwd.getpwuid(os.getuid())[0]
KeyError: 'getpwuid(): uid not found: 1000'
docker-compose.yml file
odoo:
container_name: odoo
hostname: odoo
image: odoo:15
restart: unless-stopped
volumes:
- /opt/odoo/odoo/data/web-data:/var/lib/odoo
- /opt/odoo/odoo/data/addons:/mnt/extra-addons
ports:
- "127.0.0.1:8069:8069"
user: "1000:1000"
env_file:
- '/opt/odoo/odoo/env-odoo-config'
networks:
- odoo-network
depends_on:
- db
When removing the user.
2022-09-15 07:42:41,457 1 INFO ? odoo: Odoo version 15.0-20220902
2022-09-15 07:42:41,458 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
2022-09-15 07:42:41,458 1 INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/mnt/extra-addons']
2022-09-15 07:42:41,458 1 INFO ? odoo: database: odoo@db:5432
2022-09-15 07:42:41,669 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
2022-09-15 07:42:41,986 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on odoo:8069
2022-09-15 07:43:18,053 1 INFO ? werkzeug: 172.21.0.1 - - [15/Sep/2022 07:43:18] "GET / HTTP/1.0" 500 - - - -
2022-09-15 07:43:18,057 1 ERROR ? werkzeug: Error on request:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 323, in run_wsgi
execute(self.server.app)
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 312, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 482, in app
return self.app(e, s)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 112, in application
return application_unproxied(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 87, in application_unproxied
result = odoo.http.root(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1335, in __call__
self.load_addons()
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1345, in load_addons
for module in sorted(os.listdir(str(addons_path))):
PermissionError: [Errno 13] Permission denied: '/mnt/extra-addons' - - -
2022-09-15 07:43:18,119 1 INFO ? werkzeug: 172.21.0.1 - - [15/Sep/2022 07:43:18] "GET /favicon.ico HTTP/1.0" 500 - 0 0.000 0.002
2022-09-15 07:43:18,126 1 ERROR ? werkzeug: Error on request:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 323, in run_wsgi
execute(self.server.app)
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 312, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 482, in app
return self.app(e, s)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 112, in application
return application_unproxied(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 87, in application_unproxied
result = odoo.http.root(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1336, in __call__
return self.dispatch(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1487, in dispatch
explicit_session = self.setup_session(httprequest)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1367, in setup_session
session_gc(self.session_store)
File "/usr/lib/python3/dist-packages/odoo/tools/func.py", line 26, in __get__
value = self.fget(obj)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1313, in session_store
path = odoo.tools.config.session_dir
File "/usr/lib/python3/dist-packages/odoo/tools/config.py", line 710, in session_dir
os.makedirs(d, 0o700)
File "/usr/lib/python3.9/os.py", line 225, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/var/lib/odoo/sessions' - - -
Tried to make a custom build, but I would like something that takes into account the user you add.
Why cant you run it as an non-system user???
Eg.
When I checked the built container apt installs odoo and gives it a system UID and GID.
anyway
Some testing that didnt work out too good, but the start is good to accept user option of docker.
#Dockerfile
RUN groupadd -g 1000 odoo && useradd -g 1000 -u 1000 -m -d /var/lib/odoo odoo
2022-09-15 09:04:28,657 1 INFO ? odoo: Odoo version 15.0-20220902
2022-09-15 09:04:28,658 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
2022-09-15 09:04:28,658 1 INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/var/lib/odoo/addons/15.0', '/mnt/extra-addons']
2022-09-15 09:04:28,658 1 INFO ? odoo: database: odoo@db:5432
2022-09-15 09:04:28,871 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
2022-09-15 09:04:29,187 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on odoo:8069
2022-09-15 09:05:13,739 1 INFO ? odoo.http: HTTP Configuring static files
2022-09-15 09:05:13,804 1 ERROR odoo odoo.modules.loading: Database odoo not initialized, you can force it with `-i base`
2022-09-15 09:05:13,805 1 INFO odoo odoo.modules.registry: Registry loaded in 0.032s
2022-09-15 09:05:13,809 1 INFO odoo werkzeug: 172.28.0.1 - - [15/Sep/2022 09:05:13] "GET / HTTP/1.0" 500 - 8 0.018 0.046
2022-09-15 09:05:13,814 1 ERROR odoo werkzeug: Error on request:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 323, in run_wsgi
execute(self.server.app)
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 312, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 482, in app
return self.app(e, s)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 112, in application
return application_unproxied(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 87, in application_unproxied
result = odoo.http.root(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1336, in __call__
return self.dispatch(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1302, in __call__
return self.app(environ, start_wrapped)
File "/usr/lib/python3/dist-packages/werkzeug/middleware/shared_data.py", line 260, in __call__
return self.app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1515, in dispatch
ir_http = request.registry['ir.http']
File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 182, in __getitem__
return self.models[model_name]
KeyError: 'ir.http' - - -
But the database exists.
2022-09-15 09:21:44,191 1 INFO ? odoo: Odoo version 15.0-20220902
2022-09-15 09:21:44,191 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
2022-09-15 09:21:44,191 1 INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/var/lib/odoo/addons/15.0', '/mnt/extra-addons']
2022-09-15 09:21:44,191 1 INFO ? odoo: database: odoo@db:5432
2022-09-15 09:21:44,405 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
2022-09-15 09:21:44,718 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on odoo:8069
2022-09-15 09:22:16,306 1 INFO ? odoo.http: HTTP Configuring static files
2022-09-15 09:22:16,370 1 ERROR odoo odoo.modules.loading: Database odoo not initialized, you can force it with `-i base`
2022-09-15 09:22:16,370 1 INFO odoo odoo.modules.registry: Registry loaded in 0.032s
2022-09-15 09:22:16,374 1 INFO odoo werkzeug: 172.31.0.1 - - [15/Sep/2022 09:22:16] "GET / HTTP/1.0" 500 - 8 0.017 0.046
2022-09-15 09:22:16,379 1 ERROR odoo werkzeug: Error on request:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 323, in run_wsgi
execute(self.server.app)
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 312, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 482, in app
return self.app(e, s)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 112, in application
return application_unproxied(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 87, in application_unproxied
result = odoo.http.root(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1336, in __call__
return self.dispatch(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1302, in __call__
return self.app(environ, start_wrapped)
File "/usr/lib/python3/dist-packages/werkzeug/middleware/shared_data.py", line 260, in __call__
return self.app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1515, in dispatch
ir_http = request.registry['ir.http']
File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 182, in __getitem__
return self.models[model_name]
KeyError: 'ir.http' - - -
2022-09-15 09:22:16,467 1 INFO odoo werkzeug: 172.31.0.1 - - [15/Sep/2022 09:22:16] "GET /favicon.ico HTTP/1.0" 500 - 2 0.005 0.023
2022-09-15 09:22:16,473 1 ERROR odoo werkzeug: Error on request:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 323, in run_wsgi
execute(self.server.app)
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 312, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 482, in app
return self.app(e, s)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 112, in application
return application_unproxied(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 87, in application_unproxied
result = odoo.http.root(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1336, in __call__
return self.dispatch(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1302, in __call__
return self.app(environ, start_wrapped)
File "/usr/lib/python3/dist-packages/werkzeug/middleware/shared_data.py", line 260, in __call__
return self.app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1515, in dispatch
ir_http = request.registry['ir.http']
File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 182, in __getitem__
return self.models[model_name]
KeyError: 'ir.http' - - -
2022-09-15 09:22:44,806 1 ERROR odoo odoo.sql_db: bad query:
SELECT latest_version
FROM ir_module_module
WHERE name='base'
ERROR: relation "ir_module_module" does not exist
LINE 3: FROM ir_module_module
^
2022-09-15 09:22:44,807 1 WARNING odoo odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo.
2022-09-15 09:22:45,834 1 ERROR odoo odoo.sql_db: bad query:
SELECT latest_version
FROM ir_module_module
WHERE name='base'
ERROR: relation "ir_module_module" does not exist
LINE 3: FROM ir_module_module
^
2022-09-15 09:22:45,835 1 WARNING odoo odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo.
I have created the database and stuff, but what is wrong?
I have made it as "simple" as possible, but its still not working.
odoo:
container_name: odoo
hostname: odoo
image: odoo:15
restart: unless-stopped
ports:
- "127.0.0.1:8069:8069"
env_file:
- '/opt/odoo/odoo/env-odoo-config'
networks:
- odoo-network
depends_on:
- db
2022-09-15 09:52:59,736 1 INFO ? odoo: Odoo version 15.0-20220902
2022-09-15 09:52:59,736 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
2022-09-15 09:52:59,737 1 INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/var/lib/odoo/addons/15.0', '/mnt/extra-addons']
2022-09-15 09:52:59,737 1 INFO ? odoo: database: odoo@db:5432
2022-09-15 09:53:00,536 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
2022-09-15 09:53:01,995 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on odoo:8069
2022-09-15 09:53:15,222 1 INFO ? odoo.http: HTTP Configuring static files
2022-09-15 09:53:15,553 1 ERROR odoo odoo.modules.loading: Database odoo not initialized, you can force it with `-i base`
2022-09-15 09:53:15,555 1 INFO odoo odoo.modules.registry: Registry loaded in 0.208s
2022-09-15 09:53:15,559 1 INFO odoo werkzeug: 192.168.80.1 - - [15/Sep/2022 09:53:15] "GET / HTTP/1.0" 500 - 8 0.277 0.054
2022-09-15 09:53:15,564 1 ERROR odoo werkzeug: Error on request:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 323, in run_wsgi
execute(self.server.app)
File "/usr/lib/python3/dist-packages/werkzeug/serving.py", line 312, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/server.py", line 482, in app
return self.app(e, s)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 112, in application
return application_unproxied(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/service/wsgi_server.py", line 87, in application_unproxied
result = odoo.http.root(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1336, in __call__
return self.dispatch(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1302, in __call__
return self.app(environ, start_wrapped)
File "/usr/lib/python3/dist-packages/werkzeug/middleware/shared_data.py", line 260, in __call__
return self.app(environ, start_response)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 1515, in dispatch
ir_http = request.registry['ir.http']
File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 182, in __getitem__
return self.models[model_name]
KeyError: 'ir.http' - - -
2022-09-15 09:54:02,052 1 ERROR odoo odoo.sql_db: bad query:
SELECT latest_version
FROM ir_module_module
WHERE name='base'
ERROR: relation "ir_module_module" does not exist
LINE 3: FROM ir_module_module
^
2022-09-15 09:54:02,052 1 WARNING odoo odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo.
2022-09-15 09:54:03,079 1 ERROR odoo odoo.sql_db: bad query:
SELECT latest_version
FROM ir_module_module
WHERE name='base'
ERROR: relation "ir_module_module" does not exist
LINE 3: FROM ir_module_module
^
the ENV file contains only the PASSWORD variable. As others are default for me
Hello, I am looking into some old issues. It looks like you have a lot going on here. For testing you can set the entrypoint of your container to something like /bin/bash
and confirm the permissions before you start odoo.