Come si configurano e costruiscono modelli di app personalizzati in Container Station 3?
I modelli di app Container Station consentono di distribuire container preconfigurati nell’ambiente QNAP. Per impostazione predefinita, Container Station fornisce una raccolta di modelli verificati da QNAP, ma è possibile aggiungere altri modelli di app personalizzati più vicini alle proprie esigenze. È possibile inserire questi modelli di app personalizzati direttamente nel dispositivo QNAP oppure in un server Web esterno.
In questo tutorial sono descritti due metodi di hosting di modelli di app personalizzati sul dispositivo QNAP e come configurare Container Station per accedere a questi modelli di app configurati.
- Creazione di un file modello di app personalizzato
- Hosting di un modello di app personalizzato in un NGINX Container
- Hosting di un modello di app personalizzato con QNAP Web Server
- Aggiunta di un modello di app personalizzato a Container Station
- Distribuzione di un modello di app personalizzato
Creazione di un file modello di app personalizzato
Il primo passo è creare un file modello di app personalizzato. Per impostazione predefinita, Container Station fornisce un elenco di container per i quali è stato verificato il corretto funzionamento con il dispositivo QNAP in uso. È possibile scaricare e modificare i modelli verificati da QNAP qui oppure è possibile creare autonomamente un nuovo file.
è possibile modificare il file modello all’interno di qualsiasi editor di testo.
Formato modello di app
Le definizioni di modello di app sono scritte in JSON. I modelli validi sono composti da un array e da uno o più elementi del modello di container. Ogni elemento di modello di container è un oggetto JSON che include qualsiasi campo dati obbligatorio o opzionale. Il formato deve essere simile al seguente esempio:
{
“templates”: [
{
// template1
},
{
// template2
},
...
]
}
Formato Elemento UI
tipo
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Il tipo di container (Docker o LXD) per questo modello. |
|
Importanza |
Obbligatorio |
|
Formato |
Numero intero |
|
Valori accettati |
|
titolo
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Il titolo del modello. |
|
Importanza |
Obbligatorio |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi valore di stringa |
sub_title
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Informazioni sulla versione di modello. |
|
Importanza |
Obbligatorio |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi valore di stringa |
descrizione
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Una descrizione usata per fornire informazioni sul modello. |
|
Importanza |
Obbligatorio |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi valore di stringa |
Logo
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
La posizione di un logo per il modello. |
|
Importanza |
Opzionale |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi URL o percorso valido relativo al dominio di rete in cui si trova il modello di app personalizzato. |
QGenie
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
L’URL del modello può essere una pagina Web introduttiva per il modello. |
|
Importanza |
Opzionale |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi URL valido |
piattaforma
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
La piattaforma supportata deve contenere un valore valido. |
|
Importanza |
Obbligatorio |
|
Formato |
Stringa |
|
Valori accettati |
|
|
Esempio |
|
immagine
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
L’immagine associata a un modello. |
|
Importanza |
Obbligatorio |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi immagine valida |
|
Esempio |
|
comando
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Il comando da eseguire nel container Docker. Se non specificato, il container utilizza il comando predefinito specificato nel file Docker. |
|
Importanza |
Opzionale |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi valore di stringa |
|
Esempio |
|
punto di ingresso
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Il punto di ingresso per avviare il container Docker. Se non specificato, il container utilizza il punto di ingresso predefinito specificato nel file Docker. |
|
Importanza |
Opzionale |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi valore di stringa |
|
Esempio |
|
env
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Array JSON che descrive le variabili di ambiente richieste da un modello. Ogni elemento dell’array deve essere un oggetto JSON valido. |
|
Importanza |
Opzionale |
|
Formato |
Array |
|
Valori accettati |
Un’array JSON valida |
|
Formato array |
|
|
Esempio |
|
etichette
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Array JSON che descrive le etichette associate a un modello. Ogni elemento dell’array deve essere un oggetto JSON valido. |
|
Importanza |
Opzionale |
|
Formato |
Array |
|
Valori accettati |
Un’array JSON valida |
|
Formato array |
|
|
Esempio |
|
volumes
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Array JSON che descrive i volumi associati a un modello. Ogni elemento dell’array deve essere un oggetto JSON valido con una proprietà container obbligatoria. |
|
Importanza |
Opzionale |
|
Formato |
Array |
|
Valori accettati |
Un’array JSON valida |
|
Formato array |
|
|
Esempio |
|
porte
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Array JSON che descrive le porte esposte da un modello. Ogni elemento dell’array deve essere una stringa JSON valida che specifica il numero di porta nel container e il protocollo. È possibile aggiungere un numero di porta e due punti (ad esempio 8080:) per definire la porta mappata sull'host. Se la porta host non è specificata, l'host Docker assegna automaticamente una porta all'avvio del container. |
|
Importanza |
Opzionale |
|
Formato |
Array |
|
Valori accettati |
Un’array JSON valida |
|
Esempio |
|
nome host
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Nome host del container. Consente di identificare facilmente il container. |
|
Importanza |
Opzionale |
|
Formato |
Stringa |
|
Valori accettati |
Qualsiasi valore di stringa |
|
Esempio |
|
restart_policy
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Il criterio di riavvio associato al container Docker. Se non specificato, il valore predefinito è unless-stopped. |
|
Importanza |
Opzionale |
|
Formato |
Stringa |
|
Valori accettati |
|
|
Esempio |
|
auto_start_policy
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Il criterio di riavvio automatico associato al container LXD. Se non specificato, il valore predefinito èconserva. |
|
Importanza |
Opzionale |
|
Formato |
Stringa |
|
Valori accettati |
|
|
Esempio |
|
interattivo
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Controlla se il container Docker deve essere avviato in modalità primo piano. Se non specificato, il valore predefinito è true. |
|
Importanza |
Opzionale |
|
Formato |
Boolean |
|
Valori accettati |
|
|
Esempio |
|
tty
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Controlla se al container Docker deve essere assegnato uno pseudo-TTY. Se non specificato, il valore predefinito ètrue. |
|
Importanza |
Opzionale |
|
Formato |
Boolean |
|
Valori accettati |
|
|
Esempio |
|
privileged
|
Attributo |
Descrizione |
|---|---|
|
Descrizione |
Controlla se il container deve essere avviato in modalità privilegiata. Se non specificato, il valore predefinito èfalse. |
|
Importanza |
Opzionale |
|
Formato |
Boolean |
|
Valori accettati |
|
|
Esempio |
|
Hosting di un modello di app personalizzato in un NGINX Container
Successivamente, sarà necessario rendere il modello di app personalizzato disponibile in Container Station. Questo argomento descrive il processo di hosting del file di modello con un container NGINX in esecuzione in Container Station.
In alternativa, è possibile anche inserire il file di modello app in QNAP Web Server. Vedere Hosting di un modello di app personalizzato con QNAP Web Server.
dopo avere aggiornato il file JSON di modelli di app personalizzati, occorre riavviare il container NGINX per rendere effettive le modifiche nel container.
Il file modello di app diventa disponibile per l’uso.
è possibile verificare che il file modello di app sia accessibile inserendo http://HOST_IP_ADDRESS:PUBLISHED_HOST_PORT/TEMPLATE_FILENAME nel browser web. Ad esempio: http://192.168.1.1:30080/my-templates.json.
Hosting di un modello di app personalizzato con QNAP Web Server
Successivamente, sarà necessario rendere il modello di app personalizzato disponibile in Container Station. Questo argomento descrive il processo di hosting del file di modello con QNAP Web Server.
In alternativa, è possibile anche inserire il file modello di app con un container NGINX direttamente in Container Station. Vedere Hosting di un modello di app personalizzato in un NGINX Container.
- Abilitare QTS Web Server.
- Caricare il file modello di app personalizzato.
Il file modello di app diventa disponibile per l’uso.
è possibile verificare che il file modello di app sia accessibile inserendo http://HOST_IP_ADDRESS:WEB_SERVER_PORT/TEMPLATE_FILENAME nel browser web. Ad esempio: http://192.168.1.1:80/my-templates.json.
Aggiunta di un modello di app personalizzato a Container Station
Il prossimo passaggio è aggiungere il file modello di app personalizzato a Container Station. In questo modo, l’elenco di app delle applicazioni diventa disponibile in Container Station.
Container Station salva il modello di app personalizzato.
Distribuzione di un modello di app personalizzato
Il passaggio finale è distribuire un container dal file modello di app personalizzato aggiunto nel passaggio precedente.
Viene aperta la procedura guidata Distribuisci container. Vedere Creazione di un container Docker.



.



