fix(oci): keep every declared image data path on a volume so installs can be updated

This commit is contained in:
MacRimi
2026-09-30 22:28:20 +02:00
parent d2ac3b7638
commit c83f84398b
24 changed files with 257 additions and 65 deletions
+3
View File
@@ -557,6 +557,9 @@
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
],
"non_persistent_image_volumes": [
"/out"
]
},
"adaptations": [
+38
View File
@@ -74,6 +74,22 @@
"backup": true,
"default_size_gb": 4
}
},
{
"id": "volume-1",
"container_path": "/root/.cloudflared",
"compose_source_example": "/DATA/AppData/$AppID/cloudflared",
"read_only": false,
"required": true,
"installation_choice": [
"managed-volume",
"host-bind"
],
"default": "managed-volume",
"managed_volume": {
"backup": true,
"default_size_gb": 4
}
}
],
"ports": [
@@ -122,6 +138,11 @@
"type": "bind",
"source": "/DATA/AppData/cloudflared-cloudflared/config",
"target": "/config"
},
{
"type": "bind",
"source": "/DATA/AppData/$AppID/cloudflared",
"target": "/root/.cloudflared"
}
],
"container_name": "cloudflared"
@@ -151,6 +172,17 @@
"shared_with_other_lxc": false,
"source_path": null,
"source_path_prompt": null
},
{
"id": "cloudflared-volume-1",
"service": "cloudflared",
"container_path": "/root/.cloudflared",
"mode": "managed-volume",
"user_selectable": false,
"backup": true,
"shared_with_other_lxc": false,
"source_path": null,
"source_path_prompt": null
}
],
"orchestration": {
@@ -341,6 +373,12 @@
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/root/.cloudflared",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
]
}
+4 -1
View File
@@ -267,7 +267,10 @@
},
"resources": {
"cpu_shares": 50
}
},
"non_persistent_image_volumes": [
"/config"
]
},
"adaptations": [
{
+38
View File
@@ -131,6 +131,22 @@
"default_size_gb": 8
}
},
{
"id": "volume-4",
"container_path": "/trash",
"compose_source_example": "/DATA/AppData/$AppID/trash",
"read_only": false,
"required": true,
"installation_choice": [
"managed-volume",
"host-bind"
],
"default": "managed-volume",
"managed_volume": {
"backup": true,
"default_size_gb": 8
}
},
{
"id": "volume-3",
"container_path": "/config",
@@ -206,6 +222,11 @@
"source": "/DATA/Media",
"target": "/output"
},
{
"type": "bind",
"source": "/DATA/AppData/$AppID/trash",
"target": "/trash"
},
{
"type": "bind",
"source": "/DATA/AppData/$AppID/config",
@@ -262,6 +283,17 @@
"source_path": null,
"source_path_prompt": null
},
{
"id": "handbrake-volume-4",
"service": "handbrake",
"container_path": "/trash",
"mode": "managed-volume",
"user_selectable": false,
"backup": true,
"shared_with_other_lxc": false,
"source_path": null,
"source_path_prompt": null
},
{
"id": "handbrake-volume-3",
"service": "handbrake",
@@ -395,6 +427,12 @@
"remove_lost_found": true,
"owner_strategy": "mapped-application-user",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/trash",
"remove_lost_found": true,
"owner_strategy": "mapped-application-user",
"only_when_mount_type": "managed-volume"
}
],
"startup_healthcheck": {
+38
View File
@@ -114,6 +114,22 @@
"backup": true,
"default_size_gb": 8
}
},
{
"id": "volume-3",
"container_path": "/anime",
"compose_source_example": "/DATA/AppData/$AppID/Media/Anime",
"read_only": false,
"required": true,
"installation_choice": [
"managed-volume",
"host-bind"
],
"default": "managed-volume",
"managed_volume": {
"backup": true,
"default_size_gb": 8
}
}
],
"ports": [
@@ -182,6 +198,11 @@
"type": "bind",
"source": "/DATA/AppData/$AppID/Media/Television",
"target": "/tv"
},
{
"type": "bind",
"source": "/DATA/AppData/$AppID/Media/Anime",
"target": "/anime"
}
],
"network_mode": "bridge",
@@ -234,6 +255,17 @@
"shared_with_other_lxc": true,
"source_path": null,
"source_path_prompt": "Host directory for medusa:/tv"
},
{
"id": "medusa-volume-3",
"service": "medusa",
"container_path": "/anime",
"mode": "host-bind",
"user_selectable": true,
"backup": false,
"shared_with_other_lxc": true,
"source_path": null,
"source_path_prompt": "Host directory for medusa:/anime"
}
],
"orchestration": {
@@ -436,6 +468,12 @@
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/anime",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
]
}
+6 -1
View File
@@ -304,7 +304,12 @@
"behavioral_impact": "The application cannot exchange IPC objects with processes on the Proxmox host.",
"validation": "not-requested-by-compose"
}
]
],
"installer_profile": {
"non_persistent_image_volumes": [
"/var/log/letsencrypt"
]
}
},
"compatibility": {
"automatic_install_candidate": true,
+4 -4
View File
@@ -104,7 +104,7 @@
"volumes": [
{
"id": "volume-0",
"container_path": "/var/lib/postgresql/data",
"container_path": "/var/lib/postgresql",
"compose_source_example": "/DATA/AppData/postgresql/data",
"read_only": false,
"required": true,
@@ -178,7 +178,7 @@
{
"type": "bind",
"source": "/DATA/AppData/postgresql/data",
"target": "/var/lib/postgresql/data"
"target": "/var/lib/postgresql"
}
],
"container_name": "postgresql"
@@ -201,7 +201,7 @@
{
"id": "postgresql-volume-0",
"service": "postgresql",
"container_path": "/var/lib/postgresql/data",
"container_path": "/var/lib/postgresql",
"mode": "managed-volume",
"user_selectable": false,
"backup": true,
@@ -397,7 +397,7 @@
"installer_profile": {
"volume_preparations": [
{
"container_path": "/var/lib/postgresql/data",
"container_path": "/var/lib/postgresql",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
+7 -42
View File
@@ -76,7 +76,7 @@
"volumes": [
{
"id": "volume-0",
"container_path": "/home/threadfin/conf/data",
"container_path": "/home/threadfin/conf",
"compose_source_example": "/DATA/AppData/threadfin/config",
"read_only": false,
"required": true,
@@ -89,22 +89,6 @@
"backup": true,
"default_size_gb": 8
}
},
{
"id": "volume-1",
"container_path": "/home/threadfin/conf/backup",
"compose_source_example": "/DATA/AppData/threadfin/backup",
"read_only": false,
"required": true,
"installation_choice": [
"managed-volume",
"host-bind"
],
"default": "managed-volume",
"managed_volume": {
"backup": true,
"default_size_gb": 8
}
}
],
"ports": [
@@ -155,12 +139,7 @@
{
"type": "bind",
"source": "/DATA/AppData/threadfin/config",
"target": "/home/threadfin/conf/data"
},
{
"type": "bind",
"source": "/DATA/AppData/threadfin/backup",
"target": "/home/threadfin/conf/backup"
"target": "/home/threadfin/conf"
}
],
"container_name": "threadfin"
@@ -183,18 +162,7 @@
{
"id": "threadfin-volume-0",
"service": "threadfin",
"container_path": "/home/threadfin/conf/data",
"mode": "managed-volume",
"user_selectable": false,
"backup": true,
"shared_with_other_lxc": false,
"source_path": null,
"source_path_prompt": null
},
{
"id": "threadfin-volume-1",
"service": "threadfin",
"container_path": "/home/threadfin/conf/backup",
"container_path": "/home/threadfin/conf",
"mode": "managed-volume",
"user_selectable": false,
"backup": true,
@@ -387,17 +355,14 @@
"installer_profile": {
"volume_preparations": [
{
"container_path": "/home/threadfin/conf/data",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/home/threadfin/conf/backup",
"container_path": "/home/threadfin/conf",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
],
"non_persistent_image_volumes": [
"/tmp/threadfin"
]
}
},
+3
View File
@@ -12,6 +12,9 @@
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
],
"non_persistent_image_volumes": [
"/out"
]
}
}
+6
View File
@@ -7,6 +7,12 @@
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/root/.cloudflared",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
]
}
+9
View File
@@ -0,0 +1,9 @@
{
"proxmox": {
"installer_profile": {
"non_persistent_image_volumes": [
"/config"
]
}
}
}
@@ -83,6 +83,12 @@
"remove_lost_found": true,
"owner_strategy": "mapped-application-user",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/trash",
"remove_lost_found": true,
"owner_strategy": "mapped-application-user",
"only_when_mount_type": "managed-volume"
}
],
"startup_healthcheck": {
@@ -19,6 +19,12 @@
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/anime",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
]
}
+9
View File
@@ -0,0 +1,9 @@
{
"proxmox": {
"installer_profile": {
"non_persistent_image_volumes": [
"/var/log/letsencrypt"
]
}
}
}
+1 -1
View File
@@ -77,7 +77,7 @@
],
"volume_preparations": [
{
"container_path": "/var/lib/postgresql/data",
"container_path": "/var/lib/postgresql",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
+4 -7
View File
@@ -3,17 +3,14 @@
"installer_profile": {
"volume_preparations": [
{
"container_path": "/home/threadfin/conf/data",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
},
{
"container_path": "/home/threadfin/conf/backup",
"container_path": "/home/threadfin/conf",
"remove_lost_found": true,
"owner_strategy": "mapped-root",
"only_when_mount_type": "managed-volume"
}
],
"non_persistent_image_volumes": [
"/tmp/threadfin"
]
}
}