The previous blueprint (upstream odoo/docker:19.0 + COPY + deploy.command)
systematically broke inside Easypanel's inline-dockerfile build context:
- COPY files not available
- wkhtmltopdf/libldap-2.5-0 package names absent from Debian bookworm
- Easypanel wrapped deploy.command with 'python -c …' → exit 100
- postgres password / app env set separately → mismatch auth failure
- cat > /etc/odoo/odoo.conf without parent dir → ENOENT
The new blueprint is what actually ran in production for 34h+ stable:
- FROM python:3.12-slim with an inline ENTRYPOINT (no CMD wrapping)
- init-odoo.sh: apt install build deps then pip install /mnt/os-dev
(idempotent — skipped if import odoo works, restarts < 1 s)
- --dev=reload,qweb,assets,xml,werkzeug baked into exec odoo
- mkdir -p /etc/odoo /var/lib/odoo /var/log/odoo before writing odoo.conf
- Single createFromSchema call → shared password for postgres + app
- Bind-mount os-dev → /mnt/os-dev → hot-reload on any host edit
deploy.py prepare writes easypanel.schema.json + init-odoo.sh +
inline.Dockerfile + .db_password, all ready for TRAE Easypanel MCP
createFromSchema + deployAppService. Verified end-to-end (HTTP 200 on
/web/database/manager, hot-reload on release.py product_name edit,
CREATE DATABASE via psycopg2 + odoo UI Create Database).
Docs:
- README.md rewritten with new layout table, troubleshooting
playbook, daily workflow, verified-state reference table,
old-vs-new blueprint comparison table.
15 lines
238 B
Plaintext
15 lines
238 B
Plaintext
# Sensitive artifacts generated by `deploy.py prepare`
|
|
.db_password
|
|
__pycache__/
|
|
*.pyc
|
|
|
|
# Generated files (re-run `deploy.py prepare` to regenerate)
|
|
easypanel.schema.json
|
|
init-odoo.sh
|
|
inline.Dockerfile
|
|
|
|
# Editor
|
|
.idea/
|
|
.vscode/
|
|
.DS_Store
|