inventree / InvenTree

Open Source Inventory Management System
https://docs.inventree.org
MIT License
4.12k stars 739 forks source link

[BUG] docker-compose on WSL: `IsADirectoryError` error #5162

Closed alllexx88 closed 1 year ago

alllexx88 commented 1 year ago

Please verify that this bug has NOT been raised before.

Describe the bug*

Running docker compose run inventree-server invoke update ends with an error:

......
InvenTree database migrations completed!
render api.js
render attachment.js
render barcode.js
render bom.js
render build.js
render charts.js
render company.js
render filters.js
render forms.js
render helpers.js
render index.js
render label.js
render modals.js
render model_renderers.js
render news.js
render notification.js
render order.js
render part.js
render plugin.js
render pricing.js
render purchase_order.js
render report.js
render return_order.js
render sales_order.js
render search.js
render status_codes.js
render stock.js
render tables.js
render table_filters.js
rendered all files in /home/inventree/InvenTree/templates/js/translated
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Traceback (most recent call last):
  File "/home/inventree/InvenTree/manage.py", line 23, in <module>
    execute_from_command_line(sys.argv)
  File "/root/.local/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/root/.local/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/root/.local/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/root/.local/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "/root/.local/lib/python3.9/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 187, in handle
    collected = self.collect()
  File "/root/.local/lib/python3.9/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 114, in collect
    handler(path, prefixed_path, storage)
  File "/root/.local/lib/python3.9/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 347, in copy_file
    with source_storage.open(path) as source_file:
  File "/root/.local/lib/python3.9/site-packages/django/core/files/storage.py", line 38, in open
    return self._open(name, mode)
  File "/root/.local/lib/python3.9/site-packages/django/core/files/storage.py", line 243, in _open
    return File(open(self.path(name), mode))
IsADirectoryError: [Errno 21] Is a directory: '/home/inventree/InvenTree/InvenTree/static_i18n/i18n'

Steps to Reproduce

docker-compose.yaml: https://github.com/inventree/InvenTree/blob/aa2f5e3/docker/production/docker-compose.yml

.env:

# InvenTree environment variables for a postgresql production setup

# Location of persistent database data (stored external to the docker containers)
# Note: You *must* un-comment this line, and point it to a path on your local machine

# e.g. Linux
INVENTREE_EXT_VOLUME=/home/alex/T7/inventree/data

# e.g. Windows (docker desktop)
#INVENTREE_EXT_VOLUME=c:/Users/me/inventree-data

# Default web port for the InvenTree server
INVENTREE_WEB_PORT=1337

# Ensure debug is false for a production setup
INVENTREE_DEBUG=False
INVENTREE_LOG_LEVEL=WARNING

# InvenTree admin account details
# Un-comment (and complete) these lines to auto-create an admin acount
INVENTREE_ADMIN_USER=admin
INVENTREE_ADMIN_PASSWORD=admin
INVENTREE_ADMIN_EMAIL=admin@mail.com

# Database configuration options
# Note: The example setup is for a PostgreSQL database
INVENTREE_DB_ENGINE=postgresql
INVENTREE_DB_NAME=inventree
INVENTREE_DB_HOST=inventree-db
INVENTREE_DB_PORT=5432

# Database credentials - These must be configured before running
# Uncomment the lines below, and change from the default values!
INVENTREE_DB_USER=inventree
INVENTREE_DB_PASSWORD=inventreepass

# Redis cache setup (disabled by default)
# Un-comment the following lines to enable Redis cache
# Note that you will also have to run docker-compose with the --profile redis command
# Refer to settings.py for other cache options
#INVENTREE_CACHE_HOST=inventree-cache
#INVENTREE_CACHE_PORT=6379

# Options for gunicorn server
INVENTREE_GUNICORN_TIMEOUT=30

# Enable custom plugins?
INVENTREE_PLUGINS_ENABLED=False

# Image tag that should be used
INVENTREE_TAG=stable

COMPOSE_PROJECT_NAME=inventree-production

The I run commands (clear the previous attempts and start afresh):

docker compose down
docker volume rm -f inventree-production_inventree_data
rm -rf /home/alex/T7/inventree/data/*
docker compose run inventree-server invoke update

The last command goes fine for a while but ends with the error above. Afterwards docker compose up gives some errors but starts:

$ docker compose up
[+] Running 4/0
 ⠿ Container inventree-db      Running                                                                                                                  0.0s
 ⠿ Container inventree-server  Created                                                                                                                  0.0s
 ⠿ Container inventree-proxy   Created                                                                                                                  0.0s
 ⠿ Container inventree-worker  Created                                                                                                                  0.0s
Attaching to inventree-db, inventree-proxy, inventree-server, inventree-worker
inventree-server  | Loading config file : /home/inventree/data/config.yaml
inventree-proxy   | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
inventree-proxy   | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
inventree-proxy   | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
inventree-proxy   | 10-listen-on-ipv6-by-default.sh: info: can not modify /etc/nginx/conf.d/default.conf (read-only file system?)
inventree-proxy   | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
inventree-proxy   | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
inventree-proxy   | /docker-entrypoint.sh: Configuration complete; ready for start up
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: using the "epoll" event method
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: nginx/1.24.0
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: OS: Linux 5.19.0-46-generic
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker processes
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 21
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 22
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 23
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 24
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 25
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 26
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 27
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 28
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 29
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 30
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 31
inventree-proxy   | 2023/07/04 11:31:13 [notice] 1#1: start worker process 32
inventree-worker  | Loading config file : /home/inventree/data/config.yaml
inventree-db      | 2023-07-04 11:31:14.647 UTC [108] ERROR:  duplicate key value violates unique constraint "label_stockitemlabel_label_f0cd84ad_uniq"
inventree-db      | 2023-07-04 11:31:14.647 UTC [108] DETAIL:  Key (label)=(label/inventree/stockitem/qr.html) already exists.
inventree-db      | 2023-07-04 11:31:14.647 UTC [108] STATEMENT:  INSERT INTO "label_stockitemlabel" ("metadata", "name", "description", "label", "enabled", "width", "height", "filename_pattern", "filters") VALUES ('{}', 'QR Code', 'Simple QR code label', 'label/inventree/stockitem/qr.html', true, 24.0, 24.0, 'label.pdf', '') RETURNING "label_stockitemlabel"."id"
inventree-server  | [2023-07-04 11:31:14 +0000] [11] [ERROR] Exception in worker process
inventree-server  | Traceback (most recent call last):
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
inventree-server  |     return self.cursor.execute(sql, params)
inventree-server  | psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "label_stockitemlabel_label_f0cd84ad_uniq"
inventree-server  | DETAIL:  Key (label)=(label/inventree/stockitem/qr.html) already exists.
inventree-server  | 
inventree-server  | 
inventree-server  | The above exception was the direct cause of the following exception:
inventree-server  | 
inventree-server  | Traceback (most recent call last):
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
inventree-server  |     worker.init_process()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/gthread.py", line 92, in init_process
inventree-server  |     super().init_process()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process
inventree-server  |     self.load_wsgi()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
inventree-server  |     self.wsgi = self.app.wsgi()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi
inventree-server  |     self.callable = self.load()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
inventree-server  |     return self.load_wsgiapp()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
inventree-server  |     return util.import_app(self.app_uri)
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/util.py", line 359, in import_app
inventree-server  |     mod = importlib.import_module(module)
inventree-server  |   File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
inventree-server  |     return _bootstrap._gcd_import(name[level:], package, level)
inventree-server  |   File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
inventree-server  |   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
inventree-server  |   File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
inventree-server  |   File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
inventree-server  |   File "<frozen importlib._bootstrap_external>", line 850, in exec_module
inventree-server  |   File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
inventree-server  |   File "/home/inventree/InvenTree/InvenTree/wsgi.py", line 15, in <module>
inventree-server  |     application = get_wsgi_application()  # pragma: no cover
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
inventree-server  |     django.setup(set_prefix=False)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
inventree-server  |     apps.populate(settings.INSTALLED_APPS)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/apps/registry.py", line 122, in populate
inventree-server  |     app_config.ready()
inventree-server  |   File "/home/inventree/InvenTree/label/apps.py", line 41, in ready
inventree-server  |     self.create_labels()  # pragma: no cover
inventree-server  |   File "/home/inventree/InvenTree/label/apps.py", line 53, in create_labels
inventree-server  |     self.create_labels_category(
inventree-server  |   File "/home/inventree/InvenTree/label/apps.py", line 144, in create_labels_category
inventree-server  |     self.create_template_label(model, src_dir, ref_name, label)
inventree-server  |   File "/home/inventree/InvenTree/label/apps.py", line 185, in create_template_label
inventree-server  |     model.objects.create(
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
inventree-server  |     return getattr(self.get_queryset(), name)(*args, **kwargs)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/query.py", line 453, in create
inventree-server  |     obj.save(force_insert=True, using=self.db)
inventree-server  |   File "/home/inventree/InvenTree/InvenTree/models.py", line 66, in save
inventree-server  |     super().save(*args, **kwargs)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/base.py", line 739, in save
inventree-server  |     self.save_base(using=using, force_insert=force_insert,
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/base.py", line 776, in save_base
inventree-server  |     updated = self._save_table(
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/base.py", line 881, in _save_table
inventree-server  |     results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/base.py", line 919, in _do_insert
inventree-server  |     return manager._insert(
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
inventree-server  |     return getattr(self.get_queryset(), name)(*args, **kwargs)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/query.py", line 1270, in _insert
inventree-server  |     return query.get_compiler(using=using).execute_sql(returning_fields)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/models/sql/compiler.py", line 1416, in execute_sql
inventree-server  |     cursor.execute(sql, params)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/backends/utils.py", line 66, in execute
inventree-server  |     return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
inventree-server  |     return executor(sql, params, many, context)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
inventree-server  |     return self.cursor.execute(sql, params)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/utils.py", line 90, in __exit__
inventree-server  |     raise dj_exc_value.with_traceback(traceback) from exc_value
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute
inventree-server  |     return self.cursor.execute(sql, params)
inventree-server  | django.db.utils.IntegrityError: duplicate key value violates unique constraint "label_stockitemlabel_label_f0cd84ad_uniq"
inventree-server  | DETAIL:  Key (label)=(label/inventree/stockitem/qr.html) already exists.
inventree-server  | 
inventree-server  | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
inventree-server  | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
inventree-server  | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
inventree-db      | 2023-07-04 11:31:16.260 UTC [109] ERROR:  duplicate key value violates unique constraint "common_inventreesetting_key_key"
inventree-db      | 2023-07-04 11:31:16.260 UTC [109] DETAIL:  Key (key)=(ENABLE_PLUGINS_SCHEDULE) already exists.
inventree-db      | 2023-07-04 11:31:16.260 UTC [109] STATEMENT:  INSERT INTO "common_inventreesetting" ("value", "key") VALUES ('False', 'ENABLE_PLUGINS_SCHEDULE') RETURNING "common_inventreesetting"."id"
inventree-db      | 2023-07-04 11:31:16.260 UTC [107] ERROR:  duplicate key value violates unique constraint "common_inventreesetting_key_key"
inventree-db      | 2023-07-04 11:31:16.260 UTC [107] DETAIL:  Key (key)=(ENABLE_PLUGINS_SCHEDULE) already exists.
inventree-db      | 2023-07-04 11:31:16.260 UTC [107] STATEMENT:  INSERT INTO "common_inventreesetting" ("value", "key") VALUES ('False', 'ENABLE_PLUGINS_SCHEDULE') RETURNING "common_inventreesetting"."id"
inventree-db      | 2023-07-04 11:31:16.269 UTC [109] ERROR:  duplicate key value violates unique constraint "common_inventreesetting_key_key"
inventree-db      | 2023-07-04 11:31:16.269 UTC [109] DETAIL:  Key (key)=(ENABLE_PLUGINS_APP) already exists.
inventree-db      | 2023-07-04 11:31:16.269 UTC [109] STATEMENT:  INSERT INTO "common_inventreesetting" ("value", "key") VALUES ('False', 'ENABLE_PLUGINS_APP') RETURNING "common_inventreesetting"."id"
inventree-db      | 2023-07-04 11:31:16.269 UTC [107] ERROR:  duplicate key value violates unique constraint "common_inventreesetting_key_key"
inventree-db      | 2023-07-04 11:31:16.269 UTC [107] DETAIL:  Key (key)=(ENABLE_PLUGINS_APP) already exists.
inventree-db      | 2023-07-04 11:31:16.269 UTC [107] STATEMENT:  INSERT INTO "common_inventreesetting" ("value", "key") VALUES ('False', 'ENABLE_PLUGINS_APP') RETURNING "common_inventreesetting"."id"
inventree-db      | 2023-07-04 11:31:16.277 UTC [107] ERROR:  duplicate key value violates unique constraint "common_inventreesetting_key_key"
inventree-db      | 2023-07-04 11:31:16.277 UTC [107] DETAIL:  Key (key)=(ENABLE_PLUGINS_URL) already exists.
inventree-db      | 2023-07-04 11:31:16.277 UTC [107] STATEMENT:  INSERT INTO "common_inventreesetting" ("value", "key") VALUES ('False', 'ENABLE_PLUGINS_URL') RETURNING "common_inventreesetting"."id"
inventree-db      | 2023-07-04 11:31:16.277 UTC [109] ERROR:  duplicate key value violates unique constraint "common_inventreesetting_key_key"
inventree-db      | 2023-07-04 11:31:16.277 UTC [109] DETAIL:  Key (key)=(ENABLE_PLUGINS_URL) already exists.
inventree-db      | 2023-07-04 11:31:16.277 UTC [109] STATEMENT:  INSERT INTO "common_inventreesetting" ("value", "key") VALUES ('False', 'ENABLE_PLUGINS_URL') RETURNING "common_inventreesetting"."id"
inventree-server  | [2023-07-04 11:31:16 +0000] [9] [ERROR] Exception in worker process
inventree-server  | Traceback (most recent call last):
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
inventree-server  |     worker.init_process()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/gthread.py", line 92, in init_process
inventree-server  |     super().init_process()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process
inventree-server  |     self.load_wsgi()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
inventree-server  |     self.wsgi = self.app.wsgi()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi
inventree-server  |     self.callable = self.load()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
inventree-server  |     return self.load_wsgiapp()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
inventree-server  |     return util.import_app(self.app_uri)
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/util.py", line 359, in import_app
inventree-server  |     mod = importlib.import_module(module)
inventree-server  |   File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
inventree-server  |     return _bootstrap._gcd_import(name[level:], package, level)
inventree-server  |   File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
inventree-server  |   File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
inventree-server  |   File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
inventree-server  |   File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
inventree-server  |   File "<frozen importlib._bootstrap_external>", line 850, in exec_module
inventree-server  |   File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
inventree-server  |   File "/home/inventree/InvenTree/InvenTree/wsgi.py", line 15, in <module>
inventree-server  |     application = get_wsgi_application()  # pragma: no cover
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
inventree-server  |     django.setup(set_prefix=False)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
inventree-server  |     apps.populate(settings.INSTALLED_APPS)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/apps/registry.py", line 122, in populate
inventree-server  |     app_config.ready()
inventree-server  |   File "/home/inventree/InvenTree/plugin/apps.py", line 43, in ready
inventree-server  |     registry.load_plugins()
inventree-server  |   File "/home/inventree/InvenTree/plugin/registry.py", line 165, in load_plugins
inventree-server  |     set_maintenance_mode(False)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/maintenance_mode/core.py", line 60, in set_maintenance_mode
inventree-server  |     backend.set_value(value)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/maintenance_mode/backends.py", line 74, in set_value
inventree-server  |     staticfiles_storage.save(filename, content)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/core/files/storage.py", line 54, in save
inventree-server  |     name = self._save(name, content)
inventree-server  |   File "/root/.local/lib/python3.9/site-packages/django/core/files/storage.py", line 303, in _save
inventree-server  |     os.chmod(full_path, self.file_permissions_mode)
inventree-server  | FileNotFoundError: [Errno 2] No such file or directory: '/home/inventree/data/static/maintenance_mode_state.txt'
inventree-worker  | Waiting for database...
inventree-server  | 11:31:16 [Q] INFO Enqueued 1
inventree-server  | 11:31:16 [Q] INFO Enqueued 2
inventree-server  | Traceback (most recent call last):
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 209, in run
inventree-server  |     self.sleep()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 357, in sleep
inventree-server  |     ready = select.select([self.PIPE[0]], [], [], 1.0)
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
inventree-server  |     self.reap_workers()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
inventree-server  |     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
inventree-server  | gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
inventree-server  | 
inventree-server  | During handling of the above exception, another exception occurred:
inventree-server  | 
inventree-server  | Traceback (most recent call last):
inventree-server  |   File "/usr/local/bin/gunicorn", line 8, in <module>
inventree-server  |     sys.exit(run())
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
inventree-server  |     WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 231, in run
inventree-server  |     super().run()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 72, in run
inventree-server  |     Arbiter(self).run()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 229, in run
inventree-server  |     self.halt(reason=inst.reason, exit_status=inst.exit_status)
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 342, in halt
inventree-server  |     self.stop()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 393, in stop
inventree-server  |     time.sleep(0.1)
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
inventree-server  |     self.reap_workers()
inventree-server  |   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
inventree-server  |     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
inventree-server  | gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
inventree-server exited with code 0
inventree-worker  | Database connection successful!
inventree-server  | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
inventree-server  | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
inventree-server  | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
inventree-server  | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
inventree-server  | 11:31:20 [Q] INFO Enqueued 3
inventree-server  | 11:31:20 [Q] INFO Enqueued 4
inventree-server  | 11:31:20 [Q] INFO Enqueued 5
inventree-server  | 11:31:20 [Q] INFO Enqueued 6
inventree-worker  | WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
inventree-db      | 2023-07-04 11:31:21.411 UTC [124] ERROR:  duplicate key value violates unique constraint "auth_user_username_key"
inventree-db      | 2023-07-04 11:31:21.411 UTC [124] DETAIL:  Key (username)=(admin) already exists.
inventree-db      | 2023-07-04 11:31:21.411 UTC [124] STATEMENT:  INSERT INTO "auth_user" ("password", "last_login", "is_superuser", "username", "first_name", "last_name", "email", "is_staff", "is_active", "date_joined") VALUES ('pbkdf2_sha256$260000$mfbYdwfcnsNLPMLorrO74l$vSFpbjVoKBXP2G2VfOTSxq02RcqaQViwZTJkKYjtM7s=', NULL, true, 'admin', '', '', 'admin@mail.com', true, true, '2023-07-04T11:31:21.256799+00:00'::timestamptz) RETURNING "auth_user"."id"
inventree-server  | The user "admin" could not be created due to the following error:
inventree-server  | duplicate key value violates unique constraint "auth_user_username_key"
inventree-server  | DETAIL:  Key (username)=(admin) already exists.
inventree-server  | 
inventree-db      | 2023-07-04 11:31:21.451 UTC [128] ERROR:  duplicate key value violates unique constraint "auth_user_username_key"
inventree-db      | 2023-07-04 11:31:21.451 UTC [128] DETAIL:  Key (username)=(admin) already exists.
inventree-db      | 2023-07-04 11:31:21.451 UTC [128] STATEMENT:  INSERT INTO "auth_user" ("password", "last_login", "is_superuser", "username", "first_name", "last_name", "email", "is_staff", "is_active", "date_joined") VALUES ('pbkdf2_sha256$260000$KrKIEjz565jPyUPupkoeyx$TVtNSUZ0S7F/BWDCnerarqfxMEfQE3crsl/b9K9Orb0=', NULL, true, 'admin', '', '', 'admin@mail.com', true, true, '2023-07-04T11:31:21.296645+00:00'::timestamptz) RETURNING "auth_user"."id"
inventree-server  | The user "admin" could not be created due to the following error:
inventree-server  | duplicate key value violates unique constraint "auth_user_username_key"
inventree-server  | DETAIL:  Key (username)=(admin) already exists.
inventree-server  | 
inventree-db      | 2023-07-04 11:31:21.452 UTC [126] ERROR:  duplicate key value violates unique constraint "auth_user_username_key"
inventree-db      | 2023-07-04 11:31:21.452 UTC [126] DETAIL:  Key (username)=(admin) already exists.
inventree-db      | 2023-07-04 11:31:21.452 UTC [126] STATEMENT:  INSERT INTO "auth_user" ("password", "last_login", "is_superuser", "username", "first_name", "last_name", "email", "is_staff", "is_active", "date_joined") VALUES ('pbkdf2_sha256$260000$fNm9DTo79u5taG6bK8OgrA$Lb30fdoWjF3vigBn2xyJTG5Dp5fVyhlQLNyJ8cVaUSk=', NULL, true, 'admin', '', '', 'admin@mail.com', true, true, '2023-07-04T11:31:21.281673+00:00'::timestamptz) RETURNING "auth_user"."id"
inventree-server  | The user "admin" could not be created due to the following error:
inventree-server  | duplicate key value violates unique constraint "auth_user_username_key"
inventree-server  | DETAIL:  Key (username)=(admin) already exists.
inventree-server  | 
inventree-worker  | 11:31:21 [Q] INFO Enqueued 7
inventree-worker  | 11:31:22 [Q] INFO Q Cluster lemon-mexico-beryllium-hydrogen starting.
inventree-worker  | 11:31:22 [Q] INFO Process-1:1 ready for work at 69
inventree-worker  | 11:31:22 [Q] INFO Process-1:2 ready for work at 70
inventree-worker  | 11:31:22 [Q] INFO Process-1:3 ready for work at 71
inventree-worker  | 11:31:22 [Q] INFO Process-1:4 ready for work at 72
inventree-worker  | 11:31:22 [Q] INFO Process-1:5 monitoring at 73
inventree-worker  | 11:31:22 [Q] INFO Process-1 guarding cluster lemon-mexico-beryllium-hydrogen
inventree-worker  | 11:31:22 [Q] INFO Process-1:6 pushing tasks at 74
inventree-worker  | 11:31:22 [Q] INFO Q Cluster lemon-mexico-beryllium-hydrogen running.
inventree-worker  | 11:31:22 [Q] INFO Process-1:1 processing [black-timing-gee-ten]
inventree-worker  | 11:31:22 [Q] INFO Process-1:2 processing [happy-pizza-earth-nevada]
inventree-worker  | 11:31:22 [Q] INFO Process-1:3 processing [connecticut-mobile-echo-kansas]
inventree-worker  | 11:31:22 [Q] INFO Process-1:4 processing [wyoming-tango-autumn-leopard]
inventree-worker  | 11:31:22 [Q] INFO Process-1:1 processing [alpha-indigo-shade-ohio]
inventree-worker  | 11:31:22 [Q] INFO Process-1:3 processing [summer-vermont-south-iowa]
inventree-worker  | 11:31:22 [Q] INFO Process-1:4 processing [west-orange-muppet-zebra]
inventree-worker  | 11:31:22 [Q] INFO Processed [black-timing-gee-ten]
inventree-worker  | 11:31:22 [Q] INFO Processed [connecticut-mobile-echo-kansas]
inventree-worker  | 11:31:22 [Q] INFO Processed [wyoming-tango-autumn-leopard]
inventree-worker  | 11:31:22 [Q] INFO Processed [happy-pizza-earth-nevada]
inventree-worker  | 11:31:23 [Q] INFO Processed [alpha-indigo-shade-ohio]
inventree-worker  | 11:31:23 [Q] INFO Processed [summer-vermont-south-iowa]
inventree-worker  | 11:31:23 [Q] INFO Processed [west-orange-muppet-zebra]
inventree-worker  | 11:31:52 [Q] INFO Enqueued 8
...

However, when I try to open http://localhost:1337, I get these warnings:

inventree-server  | 172.26.0.1 - - [04/Jul/2023:11:32:34 +0000] "GET / HTTP/1.0" 302 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:34 +0000] "GET / HTTP/1.1" 302 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /accounts/login/?next=/ HTTP/1.1" 200 8173 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-server  | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /accounts/login/?next=/ HTTP/1.0" 200 8173 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/fontawesome/css/brands.css" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/fontawesome/css/brands.css HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/fontawesome/css/brands.css HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/fontawesome/css/solid.css" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/fontawesome/css/solid.css HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/fontawesome/css/solid.css HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/bootstrap/css/bootstrap.min.css" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/bootstrap/css/bootstrap.min.css HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/select2/css/select2.css HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/select2/css/select2.css" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/select2/css/select2.css HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/select2/css/select2-bootstrap-5-theme.css HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/select2/css/select2-bootstrap-5-theme.css" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/select2/css/select2-bootstrap-5-theme.css HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/css/inventree.css HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/css/color-themes/default.css HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/css/inventree.css" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/css/inventree.css HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/css/color-themes/default.css" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/css/color-themes/default.css HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/img/inventree.png" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/img/inventree.png HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/img/inventree.png HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/img/inventree_splash.jpg" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/img/inventree_splash.jpg HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/img/inventree_splash.jpg HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/script/jquery_3.3.1_jquery.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/jquery_3.3.1_jquery.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/script/jquery.form.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/jquery.form.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/script/jquery-ui/jquery-ui.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/jquery-ui/jquery-ui.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/jquery_3.3.1_jquery.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/jquery.form.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/jquery-ui/jquery-ui.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/bootstrap/js/bootstrap.bundle.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/bootstrap/js/bootstrap.bundle.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/bootstrap/js/bootstrap.bundle.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/script/inventree/inventree.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/inventree/inventree.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/inventree/inventree.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/script/inventree/message.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/inventree/message.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/inventree/message.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/script/bootstrap/bootstrap-treeview.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/bootstrap/bootstrap-treeview.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/treegrid/js/jquery.treegrid.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/treegrid/js/jquery.treegrid.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/treegrid/js/jquery.treegrid.bootstrap3.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/treegrid/js/jquery.treegrid.bootstrap3.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/bootstrap/bootstrap-treeview.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/treegrid/js/jquery.treegrid.bootstrap3.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/treegrid/js/jquery.treegrid.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/bootstrap-table/bootstrap-table.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/bootstrap-table/bootstrap-table.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/bootstrap-table/bootstrap-table.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/bootstrap-table/extensions/custom-view/bootstrap-table-custom-view.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/bootstrap-table/extensions/custom-view/bootstrap-table-custom-view.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/bootstrap-table/extensions/custom-view/bootstrap-table-custom-view.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/fontawesome/js/solid.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/fontawesome/js/solid.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/fontawesome/js/solid.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/fontawesome/js/fontawesome.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/fontawesome/js/fontawesome.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/fontawesome/js/regular.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/fontawesome/js/regular.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/fontawesome/js/brands.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/fontawesome/js/brands.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/fontawesome/js/fontawesome.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/fontawesome/js/regular.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/fontawesome/js/brands.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/fullcalendar/main.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/fullcalendar/main.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/fullcalendar/locales-all.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/fullcalendar/locales-all.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/fullcalendar/locales-all.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/fullcalendar/main.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/select2/js/select2.full.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/select2/js/select2.full.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/select2/js/select2.full.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/chart.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/moment.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/script/moment.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/moment.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/script/chart.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/chart.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/script/chartjs-adapter-moment.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/chartjs-adapter-moment.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/chartjs-adapter-moment.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/clipboard.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/script/clipboard.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/clipboard.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/easymde/easymde.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/easymde/easymde.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 22#22: *1 open() "/var/www/static/script/randomColor.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/randomColor.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/easymde/easymde.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/randomColor.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:35 [error] 21#21: *2 open() "/var/www/static/script/html5-qrcode.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/html5-qrcode.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 2023/07/04 11:32:35 [error] 23#23: *4 open() "/var/www/static/script/qrcode.min.js" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/script/qrcode.min.js HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/html5-qrcode.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:35 +0000] "GET /static/script/qrcode.min.js HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"
inventree-proxy   | 2023/07/04 11:32:36 [error] 26#26: *9 open() "/var/www/static/img/favicon/manifest.json" failed (2: No such file or directory), client: 172.26.0.1, server: , request: "GET /static/img/favicon/manifest.json HTTP/1.1", host: "localhost:1337", referrer: "http://localhost:1337/accounts/login/?next=/"
inventree-proxy   | 172.26.0.1 - - [04/Jul/2023:11:32:36 +0000] "GET /static/img/favicon/manifest.json HTTP/1.1" 404 555 "http://localhost:1337/accounts/login/?next=/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" "-"

and the page looks ugly: image After log-in it is also ugly: image

Expected behaviour

Run docker compose run inventree-server invoke update without errors, don't get i18n related warnings, and don't have a crippled UI.

Deployment Method

Version Information

I'm running Ubuntu 22.04 with the latest stable docker image: currently 0.12.0.

Please verify if you can reproduce this bug on the demo site.

Relevant log output

No response

SchrodingersGat commented 1 year ago

I have just tried to reproduce this on macOS with docker production 0.12.0. The error does not present on my system.

(the secondary errors are being addressed in https://github.com/inventree/InvenTree/pull/5163)

@alllexx88 have you had success running the system previously?

alllexx88 commented 1 year ago

@SchrodingersGat Thank you for your reply! This is my first attempt to launch the system. Should I try to run a different version? I will also try to launch it on Windows 10 with WSL2 docker.

SchrodingersGat commented 1 year ago

Should I try to run a different version?

It should work, without throwing this error. It's a very unusual one.

alllexx88 commented 1 year ago

I should verify this isn't on WSL. I've managed to install InvenTree on a WSL2 distro fine (had some problems, but they're not related to InvenTree). This is on Ubuntu 22.04, and I found the culprit. For historical reasons, I had docker data-root on an NTFS drive mounted with the use of Linux kernel NTFS filesystem driver. After moving it to the ext4 rootfs the issue is gone now.

SchrodingersGat commented 1 year ago

@alllexx88 thanks for keeping us posted