Official-image wrapper of inventree/inventree 1.5.2 (digest-pinned). allauth OIDC provider JSON built from the platform env; invoke update on boot; RQ worker behind the web-port gate; admin seeded with a generated password. grind-stack: lowercase image names. 19th package. Verified: health 200, SSO route 302s to issuer, migrations clean. Detail: https://projects.knownelement.com/issues/658#note-5086
40 lines
1.9 KiB
Docker
40 lines
1.9 KiB
Docker
# InvenTree Cloudron Package
|
|
#
|
|
# InvenTree is an open-source inventory management system (Django):
|
|
# parts/stock tracking, BOMs, suppliers, purchase orders, build orders,
|
|
# plugin ecosystem. PostgreSQL storage + Redis for background-task
|
|
# queues (RQ) and optional caching.
|
|
#
|
|
# Upstream: https://github.com/inventree/InvenTree (MIT), v1.5.2.
|
|
# - Official image inventree/inventree (single image; upstream compose
|
|
# runs inventree-server [gunicorn :8000] and inventree-worker
|
|
# [invoke worker] as separate services - Cloudron is one container,
|
|
# so start.sh backgrounds the worker gated on the web port, the
|
|
# same pattern as NetBox).
|
|
# - Everything is env-configurable via INVENTREE_* (config.md): DB,
|
|
# cache, site URL, secret key, admin seed, SOCIAL_PROVIDERS JSON.
|
|
# - The image ENTRYPOINT (init.sh) prepares dirs + config template
|
|
# and execs the CMD; migrations/static collection run via
|
|
# `invoke update`, which start.sh drives explicitly.
|
|
#
|
|
# Authentication: NATIVE OIDC (preferred) via django-allauth
|
|
# (settings.py:1002 reads INVENTREE_SOCIAL_PROVIDERS;
|
|
# SOCIALACCOUNT_OPENID_CONNECT_URL_PREFIX='' so SSO routes live at
|
|
# /accounts/oidc/...). start.sh builds the provider JSON from the
|
|
# Cloudron platform OIDC env (CLOUDRON_OIDC_*). LDAP also exists in
|
|
# core (INVENTREE_LDAP_ENABLED) as an alternative. Local login remains;
|
|
# the first admin is seeded (generated password, see README).
|
|
#
|
|
# Pattern: official-image wrapper. Image pinned by tag AND digest
|
|
# (amd64 manifest digest of 1.5.2, from docker manifest inspect).
|
|
FROM inventree/inventree:1.5.2@sha256:2df695b338b9fbcb4d86a6a3c27c5f53e690d1b58af8a216e69fec49fc178a14
|
|
|
|
# no packages needed: the image ships bash, python, invoke; start.sh
|
|
# only orchestrates env + processes
|
|
COPY start.sh /app/start.sh
|
|
|
|
# gunicorn web server; API/SSO all on this port (worker has no listener)
|
|
EXPOSE 8000
|
|
|
|
ENTRYPOINT ["/bin/bash", "/app/start.sh"]
|