mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +00:00
- Backups of containers and host storage are called backup - The watchdog is named vigilancia, as in the menu and the Monitor - The Monitor tabs keep their names App and Logs
172 lines
7.5 KiB
JSON
172 lines
7.5 KiB
JSON
{
|
|
"meta": {
|
|
"title": "Cómo se adapta una imagen OCI | ProxMenux",
|
|
"description": "Del repositorio de la imagen y su archivo Compose a una plantilla que puedes revisar, un plan de despliegue y un LXC nativo de Proxmox VE, sin Docker dentro."
|
|
},
|
|
"header": {
|
|
"title": "Cómo se adapta una imagen OCI",
|
|
"description": "Del repositorio de la imagen y su archivo Compose a una plantilla que puedes revisar, un plan de despliegue y un LXC nativo, sin instalar Docker dentro.",
|
|
"section": "OCI manager Apps"
|
|
},
|
|
"sections": [
|
|
{
|
|
"id": "pipeline",
|
|
"title": "El proceso de adaptación",
|
|
"blocks": [
|
|
{
|
|
"mermaid": {
|
|
"chartCode": "flowchart LR\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": "Repositorio de la imagen",
|
|
"converter": "Conversor",
|
|
"template": "Plantilla JSON",
|
|
"blockers": "¿Sin impedimentos?",
|
|
"no": "No",
|
|
"yes": "Sí",
|
|
"review": "Revisión / overlay",
|
|
"plan": "Plan de despliegue",
|
|
"lxc": "LXC nativo"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"p": "El conversor lee la imagen y el archivo Compose publicados por el proyecto y genera una plantilla JSON. Si quedan requisitos que no se han podido adaptar y que impiden la instalación, la plantilla pasa por una revisión: un archivo de ajustes revisados, llamado overlay, los resuelve antes de publicarla en el catálogo. Solo se ofrecen para instalar las plantillas que no tienen impedimentos pendientes."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "template",
|
|
"title": "Qué conserva la plantilla",
|
|
"blocks": [
|
|
{
|
|
"cards": {
|
|
"items": [
|
|
{
|
|
"icon": "archive",
|
|
"title": "Identidad de la imagen",
|
|
"body": "Repositorio, etiqueta de actualización continua, arquitectura, digest resuelto y revisión de origen."
|
|
},
|
|
{
|
|
"icon": "braces",
|
|
"title": "Contrato del contenedor",
|
|
"body": "Entrypoint, Cmd, entorno, usuario, directorio de trabajo, señal de parada, puertos y volúmenes."
|
|
},
|
|
{
|
|
"icon": "layers",
|
|
"title": "Adaptación a Proxmox VE",
|
|
"body": "Recursos, seguridad, puntos de montaje, dispositivos, sysctls, comprobaciones de estado y las adaptaciones necesarias en cada caso, con su justificación."
|
|
},
|
|
{
|
|
"icon": "shield",
|
|
"title": "Compatibilidad",
|
|
"body": "Claves compatibles, requisitos pendientes de adaptar que impiden la instalación y estado de cada validación."
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "sources",
|
|
"title": "OCI aporta el proceso; Compose aporta el entorno",
|
|
"blocks": [
|
|
{
|
|
"table": {
|
|
"headers": [
|
|
"Origen",
|
|
"Ejemplo",
|
|
"Resultado nativo"
|
|
],
|
|
"rows": [
|
|
[
|
|
"Metadatos OCI",
|
|
"<code>Entrypoint</code>, <code>Cmd</code>, <code>User</code>",
|
|
"Proxmox VE los importa al crear el CT"
|
|
],
|
|
[
|
|
"Docker Compose",
|
|
"<code>environment</code>, <code>volumes</code>, <code>devices</code>",
|
|
"Entradas de entorno de LXC, <code>mpN</code> y <code>devN</code>"
|
|
],
|
|
[
|
|
"Perfil de ProxMenux",
|
|
"GPU, comprobación de estado, credenciales",
|
|
"Preguntas y adaptaciones revisadas"
|
|
],
|
|
[
|
|
"Usuario",
|
|
"VMID, almacenamiento, red",
|
|
"El contrato de la instancia"
|
|
]
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "install",
|
|
"title": "Qué ocurre durante la instalación",
|
|
"blocks": [
|
|
{
|
|
"steps": {
|
|
"items": [
|
|
{
|
|
"title": "Resolver la referencia",
|
|
"body": "Se consulta el registro, se selecciona la arquitectura del host y se fija el digest concreto al que apunta la etiqueta de actualización continua."
|
|
},
|
|
{
|
|
"title": "Descargar y verificar",
|
|
"body": "Skopeo descarga la imagen como un archivo OCI. Antes de crear nada, se verifica el digest de cada capa y se descomprimen todas las capas. Si la descarga está dañada, se vuelve a descargar una vez antes de detener la instalación."
|
|
},
|
|
{
|
|
"title": "Crear el sistema de archivos",
|
|
"body": "<code>pct create</code> crea el rootfs a partir del archivo y conserva los metadatos oficiales del proceso de la imagen."
|
|
},
|
|
{
|
|
"title": "Conectar los recursos",
|
|
"body": "Se aplican los volúmenes, la red, el entorno, los dispositivos y los perfiles de seguridad declarados."
|
|
},
|
|
{
|
|
"title": "Consola",
|
|
"body": "La salida de consola del contenedor se guarda en el host. La consola de Proxmox VE abre una shell si la imagen incluye una."
|
|
},
|
|
{
|
|
"title": "Comprobar",
|
|
"body": "En el primer arranque se espera a que el contenedor tenga una dirección y el servicio responda. Si falla, la instalación no se da por completada correctamente."
|
|
},
|
|
{
|
|
"title": "Registrar la configuración",
|
|
"body": "La configuración efectiva se guarda en el contrato de la instancia que utilizan las actualizaciones y las recreaciones."
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "example",
|
|
"title": "Ejemplo: una imagen con /config y /downloads",
|
|
"intro": "Una definición Compose habitual y la configuración de Proxmox VE que se genera a partir de ella. Las rutas que espera la aplicación no cambian.",
|
|
"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 (fragmento)",
|
|
"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> es un segundo disco que pertenece al contenedor, con el nombre <code>vm-VMID-disk-N</code> en el almacenamiento seleccionado. Se monta en <code>/config</code> y, con <code>backup=1</code>, forma parte del backup del contenedor. <code>mp1</code> no crea ningún disco: monta el directorio del host <code>/srv/downloads</code> en <code>/downloads</code> dentro del LXC. El puerto 8080 no se mapea: el LXC tiene su propia dirección y el servicio responde en ella."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|