Condividi tramite


Automatizzare le compilazione di immagini dei contenitori con Attività del Registro Azure Container

I contenitori offrono nuovi livelli di virtualizzazione isolando le dipendenze di sviluppo e delle applicazioni dai requisiti operativi e dell'infrastruttura. È comunque necessario definire come gestire e applicare patch alla virtualizzazione delle applicazioni durante il ciclo di vita del contenitore.

Attività del Registro Azure Container è una suite di funzionalità che:

  • Consente la compilazione di immagini dei contenitori basate sul cloud per piattaforme come Linux, Windows e ARM.
  • Estendere le fasi iniziali di un ciclo di sviluppo di applicazioni al cloud con compilazioni di immagini del contenitore su richiesta.
  • Abilitare compilazioni automatizzate attivate da aggiornamenti del codice sorgente, aggiornamenti all'immagine di base di un contenitore o timer.

Ad esempio, con i trigger per gli aggiornamenti di un'immagine di base, è possibile automatizzare l'applicazione di patch al framework e al sistema operativo per i contenitori Docker. Questi trigger consentono di proteggere gli ambienti rispettando al contempo i principi dei contenitori non modificabili.

Importante

Le esecuzioni di Attività del Registro Azure Container vengono messe temporaneamente sospese dai crediti gratuiti di Azure. Questa pausa potrebbe influire sulle esecuzioni di attività esistenti. Se si riscontrano problemi, aprire un caso di supporto per consentire al nostro team di fornire indicazioni aggiuntive.

Avviso

Si tenga presente che tutte le informazioni fornite nella riga di comando o in un URI possono essere registrate nell'ambito dell'analisi diagnostica di Registro Azure Container. Sono inclusi dati sensibili, quali credenziali, token di accesso personali di GitHub e altre informazioni sicure. Per prevenire potenziali rischi per la sicurezza, non includere dettagli sensibili nelle righe di comando o negli URI soggetti a registrazione diagnostica.

Scenari di attività

Attività di Registro Azure Container supporta diversi scenari per la compilazione e la gestione di immagini dei contenitori e altri artefatti. Questo articolo descrive attività rapide, attività attivate automaticamentee attività in più passaggi.

Ogni attività ha un contesto di codice sorgente associato, ovvero il percorso dei file di origine usati per compilare un'immagine del contenitore o un altro artefatto. Tra i contesti di esempio sono inclusi un repository Git e un file system locale.

Le attività possono anche sfruttare variabili di esecuzione, in modo da riutilizzare le definizioni delle attività e standardizzare i tag per immagini e artefatti.

Attività rapide

Il ciclo di sviluppo con ciclo interno è il processo iterativo di scrittura di codice, compilazione e test dell'applicazione prima di eseguire il commit nel controllo del codice sorgente. Si tratta davvero dell'inizio della gestione del ciclo di vita dei contenitori.

La funzione di attività rapida di Attività del Registro Azure Container può offrire un'esperienza di sviluppo integrato eseguendo l'offload delle build di un'immagine del contenitore in Azure. È possibile compilare ed eseguire il push di una singola immagine del contenitore in un registro contenitori on demand, in Azure, senza la necessità di un'installazione locale di un motore Docker. Pensare docker build, docker push nel cloud. Grazie alle attività rapide, è possibile verificare le definizioni di compilazione automatizzate e rilevare potenziali problemi prima di eseguire il commit del codice.

Usando il formato docker build classico, il comando az acr build nell'interfaccia della riga di comando di Azure accetta un contesto. Il comando invia quindi il contesto a Registro Azure Container e al termine dell'operazione (per impostazione predefinita) esegue il push dell'immagine compilata nel registro corrispondente.

Attività di Registro Azure Container è da intendersi come una primitiva nel ciclo di vita del contenitore. Ad esempio, è possibile integrare Attività di Registro Azure Container nella soluzione di integrazione continua e recapito continuo (CI/CD). Se si esegue az login con un' entità servizio, la soluzione CI/CD può quindi eseguire comandi az acr build per avviare compilazioni di immagini.

Per informazioni su come usare le attività rapide, vedere la guida introduttiva e l'esercitazione per la compilazione e la distribuzione di immagini dei contenitori usando Attività di Registro Azure Container.

Suggerimento

Se si vuole compilare ed eseguire il push di un'immagine direttamente dal codice sorgente, senza un Dockerfile, Registro Azure Container fornisce il comando az acr pack build (anteprima). Questo strumento compila ed esegue il push di un'immagine dal codice sorgente dell'applicazione usando buildpack nativi del cloud.

Attività generate automaticamente

Abilitare uno o più trigger per compilare un'immagine.

Attivare un'attività in un aggiornamento del codice sorgente

È possibile attivare una compilazione dell'immagine del contenitore o un'attività in più passaggi quando si esegue il commit del codice o quando si invia o aggiorna una richiesta pull in un repository Git pubblico o privato in GitHub o Azure DevOps. Ad esempio, configurare un'attività di compilazione con il comando az acr taskdell'interfaccia della riga di comando di Azure specificando un repository Git e, facoltativamente, un ramo e un Dockerfile. Quando il team aggiorna il codice nel repository, un webhook creato in Attività di Registro Azure Container attiva una compilazione dell'immagine del contenitore definita nel repository.

Quando si imposta un repository Git come contesto di un'attività, Attività di Registro Azure Container supporta i trigger seguenti:

Trigger Abilitata per impostazione predefinita
Commit
Richiesta pull No

Nota

Attualmente, Attività del Registro Azure Container non supporta i trigger per il commit o le richieste pull nei repository di GitHub Enterprise.

Per informazioni su come attivare compilazioni in caso di commit del codice sorgente, vedere Automatizzare la compilazione di immagini dei contenitori con Attività del Registro Azure Container.

Token di accesso personale

Per configurare un trigger per gli aggiornamenti del codice sorgente, è necessario fornire un token di accesso personale all'attività per impostare il webhook nel repository pubblico o privato in GitHub o Azure DevOps. Di seguito sono riportati gli ambiti obbligatori per il token di accesso personale:

Tipo di repository GitHub Azure DevOps
Repository pubblico repo:status
public_repo
Codice (lettura)
Repository privato repository (controllo completo) Codice (lettura)

Per creare un token di accesso personale, vedere la documentazione di GitHub o Azure DevOps.

Automatizzare l'applicazione di patch al sistema operativo e al framework

Attività del Registro Azure Container può migliorare il flusso di lavoro di compilazione dei contenitori grazie alla capacità di rilevare un aggiornamento di un'immagine di base. Un'immagine di base è una funzionalità della maggior parte delle immagini dei contenitori. Si tratta di un'immagine padre su cui si basano una o più immagini dell'applicazione. Le immagini di base contengono in genere il sistema operativo e talvolta i framework dell'applicazione.

È possibile configurare Attività di Registro Azure Container per tenere traccia di una dipendenza da un'immagine di base durante la compilazione di un'immagine dell'applicazione. Quando si esegue il push dell'immagine di base aggiornata nel registro o si aggiorna un'immagine di base in un repository pubblico, come Docker Hub, Attività di Registro Azure Container può compilare automaticamente tutte le immagini dell'applicazione basate su di essa. Grazie al rilevamento e alla ricompilazione automatici, Attività del Registro Azure Container consente di risparmiare il tempo e il lavoro normalmente necessari per monitorare e aggiornare manualmente ogni immagine di applicazione che fa riferimento all'immagine di base aggiornata.

Per altre informazioni, vedere Informazioni sugli aggiornamenti delle immagini di base per Attività del Registro Azure Container e Esercitazione: Automatizzare la compilazione di immagini dei contenitori quando viene aggiornata un'immagine in Registro Azure Container.

Pianificare un'attività

È possibile pianificare un'attività impostando uno o più trigger timer quando si crea o si aggiorna l'attività. La pianificazione di un'attività è utile per eseguire carichi di lavoro del contenitore in base a una pianificazione definita o per eseguire operazioni di manutenzione o test sulle immagini di cui è stato eseguito regolarmente il push nel registro. Per altre informazioni, vedere Eseguire un'attività del Registro Azure Container in base a una pianificazione definita.

Attività a più passaggi

Estendere la funzionalità di compilazione ed esecuzione del push a immagine singola di Attività del Registro Azure Container con flussi di lavoro in più passaggi basati su più contenitori.

Le attività in più passi consentono di definire ed eseguire attività basate su passaggi per creare, testare e correggere le immagini del contenitore nel cloud. I passaggi delle attività definiti in un file YAML specificano singole operazioni di compilazione ed esecuzione del push per immagini dei contenitori o altri artefatti. Possono anche definire l'esecuzione di uno o più contenitori, con ogni passaggio che usa il contenitore come ambiente di esecuzione.

Ad esempio, è possibile creare un'attività in più passaggi che consenta di automatizzare le operazioni seguenti:

  1. Compilare un'immagine dell'applicazione Web.
  2. Eseguire il contenitore dell'applicazione Web.
  3. Compilare un'immagine di test dell'applicazione Web.
  4. Eseguire il contenitore di test dell'applicazione Web che esegue test sul contenitore dell'applicazione in esecuzione.
  5. Se i test vengono superati, compilare un pacchetto di archivio del grafico di Helm.
  6. Eseguire un'attività di helm upgrade usando il nuovo pacchetto di archivio del grafico di Helm.

Le attività in più passaggi consentono di dividere la creazione, l'esecuzione e il test di un'immagine in più passaggi componibili, con il supporto della dipendenza tra i passaggi. Con le attività in più passaggi in Attività del Registro Azure Container si dispone di un controllo più granulare sui flussi di lavoro per la compilazione delle immagini, i test e l'applicazione di patch al framework e al sistema operativo.

Altre informazioni sull'esecuzione di attività di compilazione, test e applicazione di patch in più passaggi in Attività del Registro Azure Container.

Posizioni del contesto

La tabella seguente mostra esempi di percorsi di contesto supportati per Attività del Registro Azure Container:

Posizione contesto Descrizione Esempio
File system locale File contenuti in una directory nel file system locale. /home/user/projects/myapp
Ramo principale di GitHub File nel ramo principale (o altra impostazione predefinita) di un repository GitHub pubblico o privato. https://github.com/gituser/myapp-repo.git
Ramo GitHub Ramo specifico di un repository GitHub pubblico o privato. https://github.com/gituser/myapp-repo.git#mybranch
Sottocartella di GitHub File all'interno di una sottocartella in un repository GitHub pubblico o privato. L'esempio mostra una combinazione di specifiche di un ramo e di una sottocartella. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
Commit GitHub Commit specifico di un repository GitHub pubblico o privato. L'esempio mostra una combinazione di specifiche di un hash del commit (SHA) e di una sottocartella. https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder
Sottocartella di Azure DevOps File all'interno di una sottocartella in un repository Azure pubblico o privato. L'esempio mostra una combinazione di specifiche di un ramo e di una sottocartella. https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder
File tarball remoto File in un archivio compresso in un server Web remoto. http://remoteserver/myapp.tar.gz
Artefatto in un registro contenitori File dell'artefatto OCI in un repository del registro contenitori. oci://myregistry.azurecr.io/myartifact:mytag

Nota

Quando si usa un repository Git come contesto per un'attività attivata da un aggiornamento del codice sorgente, è necessario fornire un token di accesso personale.

Piattaforme di immagini

Per impostazione predefinita, Attività del Registro Azure Container compila immagini per il sistema operativo Linux e l'architettura AMD64. Specificare il tag --platform per compilare immagini Windows o immagini Linux per altre architetture. Specificare il sistema operativo e, facoltativamente, un'architettura supportata nel formato sistema operativo/architettura (ad esempio, --platform Linux/arm). Per le architetture ARM, specificare facoltativamente una variante nel formato sistema operativo/architettura/variante (ad esempio, --platform Linux/arm64/v8).

Sistema operativo Architettura
Linux AMD64
ARM
ARM64
386
Windows AMD64

Output dell'attività

Ogni esecuzione dell'attività genera l'output di registro, che può essere esaminato per determinare se i passaggi dell'attività sono stati eseguiti correttamente. Quando si attiva manualmente un'attività, l'output di registro per l'esecuzione dell'attività viene trasmesso alla console e archiviato per il successivo recupero. Quando si attiva automaticamente un'attività (ad esempio, da un commit del codice sorgente o da un aggiornamento dell'immagine di base), i log delle attività vengono solo archiviati. Visualizzare i log di esecuzione nel portale di Azure o usare il comando az acr task logs.

Altre informazioni sulla visualizzazione e la gestione dei log delle attività.