mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +00:00
Last changes before version 1.2.7. OCI manager Apps - Multi-container applications start while one of their containers is being backed up: the start hook waits until vzdump releases it and does not start it twice. The DHCP client of a dependency no longer keeps the lock of the hook, so later starts do not hang, and the watchdog waits while a dependency is locked. Installing or updating ProxMenux replaces the published copies of the hook already in place. - Images built from scratch with a numeric user, such as ddns-updater, install: the container is created from a copy of the image that adds the /etc/passwd and /etc/group Proxmox VE needs, and the application runs with the user the image declares. The downloaded image stays unchanged. An image with a named user and no user database stops before anything is created, with a message that says why. Catalog - Twelve new applications: MDBListarr, CrossWatch, Free Games Claimer Remaster, Cloudreve, Poznote and AceStream HTTP Proxy, suggested in discussion #440, and the Dockur images of Chrony, Dnsmasq, Tor, Stunnel, strfry and Statping. The catalog lists 347 applications. - Their prompts, labels and notes are translated into the seven languages of the menus. Documentation - OCI manager: architecture, lifecycle and stacks pages revised, with larger diagrams and new screenshots. - Contributors: the page now thanks those developing, reviewing, translating and testing ProxMenux today and those who helped in its first steps, with new avatars. Tests for the stack start hook, the watchdog, the user database check of OCI images and the Tor installation summary.
172 lines
7.6 KiB
JSON
172 lines
7.6 KiB
JSON
{
|
||
"meta": {
|
||
"title": "Come viene adattata un’immagine OCI | ProxMenux",
|
||
"description": "Dal repository dell’immagine e dal suo file Compose a un modello verificabile, un piano di distribuzione e un LXC nativo di Proxmox VE, senza Docker al suo interno."
|
||
},
|
||
"header": {
|
||
"title": "Come viene adattata un’immagine OCI",
|
||
"description": "Dal repository dell’immagine e dal suo file Compose a un modello verificabile, un piano di distribuzione e un LXC nativo, senza installare Docker al suo interno.",
|
||
"section": "OCI manager Apps"
|
||
},
|
||
"sections": [
|
||
{
|
||
"id": "pipeline",
|
||
"title": "Il processo di adattamento",
|
||
"blocks": [
|
||
{
|
||
"mermaid": {
|
||
"chartCode": "flowchart TB\n A[\"{{repo}}\"] --> B[\"Compose + README\"]\n B --> C[\"{{converter}}\"]\n C --> D[\"{{template}}\"]\n D --> E{\"{{blockers}}\"}\n E -- \"{{no}}\" --> F[\"{{review}}\"]\n F --> D\n E -- \"{{yes}}\" --> G[\"{{plan}}\"]\n G --> H[\"pct create\"]\n H --> I[\"{{lxc}}\"]",
|
||
"labels": {
|
||
"repo": "Repository dell’immagine",
|
||
"converter": "Convertitore",
|
||
"template": "Modello JSON",
|
||
"blockers": "Nessun requisito bloccante?",
|
||
"no": "No",
|
||
"yes": "Sì",
|
||
"review": "Revisione / overlay",
|
||
"plan": "Piano di distribuzione",
|
||
"lxc": "LXC nativo"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"p": "Il convertitore legge l’immagine e il file Compose pubblicati dal progetto e genera un modello JSON. Se alcuni requisiti non possono ancora essere adattati e impediscono l’installazione, il modello viene revisionato prima della pubblicazione nel catalogo. Un file di modifiche verificate, chiamato overlay, risolve questi problemi. Solo i modelli senza requisiti bloccanti vengono proposti per l’installazione."
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": "template",
|
||
"title": "Cosa conserva il modello",
|
||
"blocks": [
|
||
{
|
||
"cards": {
|
||
"items": [
|
||
{
|
||
"icon": "archive",
|
||
"title": "Identità dell’immagine",
|
||
"body": "Repository, tag ad aggiornamento continuo, architettura, digest risolto e revisione di origine."
|
||
},
|
||
{
|
||
"icon": "braces",
|
||
"title": "Contratto del container",
|
||
"body": "Entrypoint, Cmd, ambiente, utente, directory di lavoro, segnale di arresto, porte e volumi."
|
||
},
|
||
{
|
||
"icon": "layers",
|
||
"title": "Adattamento a Proxmox VE",
|
||
"body": "Risorse, sicurezza, punti di mount, dispositivi, sysctls, controlli di stato e adattamenti necessari per ciascuno, con la relativa motivazione."
|
||
},
|
||
{
|
||
"icon": "shield",
|
||
"title": "Compatibilità",
|
||
"body": "Chiavi supportate, requisiti non adattati che impediscono l’installazione e stato di ogni verifica."
|
||
}
|
||
]
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": "sources",
|
||
"title": "OCI fornisce il processo, Compose l’ambiente",
|
||
"blocks": [
|
||
{
|
||
"table": {
|
||
"headers": [
|
||
"Origine",
|
||
"Esempio",
|
||
"Risultato nativo"
|
||
],
|
||
"rows": [
|
||
[
|
||
"Metadati OCI",
|
||
"<code>Entrypoint</code>, <code>Cmd</code>, <code>User</code>",
|
||
"Proxmox VE li importa durante la creazione del CT"
|
||
],
|
||
[
|
||
"Docker Compose",
|
||
"<code>environment</code>, <code>volumes</code>, <code>devices</code>",
|
||
"Voci dell’ambiente LXC, <code>mpN</code> e <code>devN</code>"
|
||
],
|
||
[
|
||
"Profilo ProxMenux",
|
||
"GPU, controllo di stato, credenziali",
|
||
"Domande e adattamenti verificati"
|
||
],
|
||
[
|
||
"Utente",
|
||
"VMID, storage, rete",
|
||
"Il contratto dell’istanza"
|
||
]
|
||
]
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": "install",
|
||
"title": "Cosa succede durante l’installazione",
|
||
"blocks": [
|
||
{
|
||
"steps": {
|
||
"items": [
|
||
{
|
||
"title": "Risolvere il riferimento",
|
||
"body": "Viene interrogato il registro, viene scelta l’architettura dell’host e viene fissato il digest esatto a cui punta il tag ad aggiornamento continuo."
|
||
},
|
||
{
|
||
"title": "Scaricare e verificare",
|
||
"body": "Skopeo scarica l’immagine come archivio OCI. Prima di creare qualsiasi risorsa, ogni livello viene verificato rispetto al suo digest e decompresso. Se il download è danneggiato, viene ripetuto una volta prima di interrompere l’installazione."
|
||
},
|
||
{
|
||
"title": "Creare il filesystem",
|
||
"body": "<code>pct create</code> crea il rootfs a partire dall’archivio e conserva i metadati ufficiali del processo dell’immagine."
|
||
},
|
||
{
|
||
"title": "Collegare le risorse",
|
||
"body": "Vengono applicati i volumi, la rete, l’ambiente, i dispositivi e i profili di sicurezza dichiarati."
|
||
},
|
||
{
|
||
"title": "Console",
|
||
"body": "L’output della console del container viene conservato sull’host. La console di Proxmox VE apre una shell se l’immagine ne include una."
|
||
},
|
||
{
|
||
"title": "Verificare",
|
||
"body": "Al primo avvio si attende che il container riceva un indirizzo e che il servizio risponda. In caso di errore, l’installazione non viene indicata come riuscita."
|
||
},
|
||
{
|
||
"title": "Registrare la configurazione",
|
||
"body": "La configurazione effettiva viene salvata nel contratto dell’istanza usato per gli aggiornamenti e le ricreazioni."
|
||
}
|
||
]
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": "example",
|
||
"title": "Esempio: un’immagine con /config e /downloads",
|
||
"intro": "Una definizione Compose comune e la configurazione Proxmox VE che ne deriva. I percorsi attesi dall’applicazione non cambiano.",
|
||
"blocks": [
|
||
{
|
||
"codeGrid": {
|
||
"items": [
|
||
{
|
||
"title": "Docker Compose",
|
||
"code": "image: lscr.io/linuxserver/example:latest\nenvironment:\n - PUID=1000\n - PGID=1000\nvolumes:\n - config:/config\n - /srv/downloads:/downloads\nports:\n - 8080:8080"
|
||
},
|
||
{
|
||
"title": "/etc/pve/lxc/VMID.conf (estratto)",
|
||
"code": "entrypoint: /init\nmp0: local-lvm:vm-VMID-disk-1,mp=/config,backup=1,size=8G\nmp1: /srv/downloads,mp=/downloads\nnet0: name=eth0,bridge=vmbr0,ip=dhcp,type=veth\nlxc.environment.runtime: PUID=1000\nlxc.environment.runtime: PGID=1000"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"p": "<code>mp0</code> è un secondo disco appartenente al container, denominato <code>vm-VMID-disk-N</code> sullo storage selezionato. Viene montato in <code>/config</code> e, con <code>backup=1</code>, incluso nel backup del container. <code>mp1</code> non crea alcun disco: monta la directory dell’host <code>/srv/downloads</code> in <code>/downloads</code> all’interno dell’LXC. La porta 8080 non viene mappata: l’LXC ha un proprio indirizzo e il servizio risponde su quello."
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|