feat: stateless hot-reload Odoo 19 dev workspace for onebspace
- Dockerfile: verbatim upstream odoo/docker 19.0 + pip install requirements.txt - easypanel.schema.json: source.type=dockerfile with inline Dockerfile - deploy.py: calls Easypanel tRPC API directly (bypass MCP that only supports image) - .gitea/workflows/build.yml: optional Gitea Actions CI - README.md: full research + reproduction steps
This commit is contained in:
1 parent
2b34aec75c
commit
fff19a9e17
9 files changed
+829
-1
No files matched your search
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"_comment": "Stateless Odoo 19 hot-reload dev stack \u2014 onebspace project. Uses source.type=dockerfile (inline Dockerfile build) so Easypanel builds the image in-place on every deploy. The Dockerfile.inline file is auto-generated from os-dev/Dockerfile + COPY files. Deploy: python3 deploy.py deploy",
|
||||
"name": "Odoo 19 Dev (live hot-reload)",
|
||||
"projectName": "onebspace",
|
||||
"schema": {
|
||||
"services": [
|
||||
{
|
||||
"type": "postgres",
|
||||
"data": {
|
||||
"serviceName": "odoo-dev-db",
|
||||
"image": "postgres:17",
|
||||
"databaseName": "postgres",
|
||||
"user": "odoo",
|
||||
"password": "CHANGE_ME_DB_PASSWORD",
|
||||
"exposedPort": 0,
|
||||
"pgWeb": {
|
||||
"enabled": true
|
||||
},
|
||||
"resources": {
|
||||
"memoryReservation": 256,
|
||||
"memoryLimit": 1024,
|
||||
"cpuReservation": 0.25,
|
||||
"cpuLimit": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "app",
|
||||
"data": {
|
||||
"serviceName": "odoo-dev",
|
||||
"source": {
|
||||
"type": "dockerfile",
|
||||
"dockerfile": "<see deploy.py \u2014 generated from os-dev/* files>"
|
||||
},
|
||||
"env": "HOST=$(PROJECT_NAME)_odoo-dev-db\nPORT=5432\nUSER=odoo\nPASSWORD=CHANGE_ME_DB_PASSWORD\nADMIN_PASSWD=admin",
|
||||
"ports": [
|
||||
{
|
||||
"protocol": "tcp",
|
||||
"published": 18069,
|
||||
"target": 8069
|
||||
}
|
||||
],
|
||||
"domains": [
|
||||
{
|
||||
"host": "$(EASYPANEL_DOMAIN)",
|
||||
"port": 8069,
|
||||
"https": true,
|
||||
"path": "/"
|
||||
}
|
||||
],
|
||||
"mounts": [
|
||||
{
|
||||
"type": "bind",
|
||||
"hostPath": "/root/Documents/trae_projects/one_b_os/os-dev",
|
||||
"mountPath": "/mnt/os-dev"
|
||||
},
|
||||
{
|
||||
"type": "volume",
|
||||
"name": "odoo-filestore",
|
||||
"mountPath": "/var/lib/odoo"
|
||||
},
|
||||
{
|
||||
"type": "file",
|
||||
"content": "[options]\naddons_path = /mnt/os-dev/addons,/mnt/os-dev/odoo/addons,/usr/lib/python3/dist-packages/odoo/addons\ndata_dir = /var/lib/odoo\ndev_mode = reload,qweb,assets,xml,werkzeug\nxmlrpc_port = 8069\nworkers = 0\nadmin_passwd = admin\nlog_level = info\ndbfilter = .*\nlist_db = True\n",
|
||||
"mountPath": "/etc/odoo/odoo.conf"
|
||||
}
|
||||
],
|
||||
"deploy": {
|
||||
"command": "odoo --addons-path=/mnt/os-dev/addons,/mnt/os-dev/odoo/addons --dev=reload,qweb,assets,xml,werkzeug --db-filter=.* --limit-time-real=120 --log-level=info",
|
||||
"replicas": 1,
|
||||
"zeroDowntime": false
|
||||
},
|
||||
"resources": {
|
||||
"memoryReservation": 512,
|
||||
"memoryLimit": 2048,
|
||||
"cpuReservation": 0.5,
|
||||
"cpuLimit": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user