Modello BYOC (Bring Your Own Container) per le pipeline
Oltre a definire i passi della pipeline in base a job e script, è possibile utilizzare immagini di container personalizzate per definire il runtime dei passi.
È possibile selezionare l'immagine del contenitore, il comando o il punto di ingresso per l'esecuzione del contenitore. Il codice personalizzato può essere fornito in uno script o in un archivio compresso, per poter essere aggiornato senza ricreare l'immagine.
Configurazione passo BYOC
Artifact modello
Il caricamento di un artifact di passo quando si utilizza BYOC è facoltativo. Tuttavia, consente di modificare il codice che viene eseguito all'interno del contenitore senza ricreare l'immagine.
Gli artifact del passo vengono installati nel contenitore nella cartella /home/datascience/
. Se un artifact è un archivio, il relativo contenuto viene estratto nella cartella /home/datascience/decompressed_artifact
.
- Immagine docker comune
- È conveniente creare un'immagine di contenitore generica con l'ambiente richiesto (ad esempio, Python 3.8 e librerie di base come mostrato in Avvio rapido) e aggiungere script Python in un secondo momento come artifact del passo.
- Artifact personalizzati - Sostituzione cartella
- Quando si utilizza un artifact passo personalizzato, il servizio installa un volume con l'artifact nella cartella
/home/datascience
, sostituendo la cartella nell'immagine del contenitore. Gli artifact di archivio (zip/tar/...
) vengono decompressi e il contenuto viene presentato nella cartella/home/datascience/decompressed_artifact
.
Crea una pipeline container - Avvio rapido
Per creare un passo della pipeline del contenitore, procedere come segue.
Costruire il container
Test del contenitore
Prima di eseguire il push dell'immagine in un registro container, è possibile eseguirne il test in locale.
Spostamento del contenitore in OCIR
Attenersi alla procedura descritta nella documentazione di Container Registry per generare un token di autenticazione per eseguire il login a OCIR.
Creazione della pipeline
Vedere la sezione Criteri pipeline per assicurarsi di disporre di criteri che consentano all'esecuzione della pipeline di estrarre le immagini dei container dal registro dei container.
- Creare una pipeline con un nome appropriato, ad esempio
BYOC Demo name
. - Selezionare Aggiungi passi della pipeline.
- Specificare un nome per il passaggio, ad esempio
Step 1
. - Per utilizzare Bring Your Own Container, selezionare From container.
- In Configurazione contenitore, selezionare Configura.
- In Configurare l'ambiente del contenitore:
- Selezionare quickstart o byoc del repository dall'elenco. Se il repository si trova in un compartimento diverso, selezionare Modifica compartimento.
- Selezionare l'immagine
iad.ocir.io/idtlxnfdweil/quickstart/byoc:1.0.0
dall'elenco. - Selezionare Seleziona.
- Selezionare Salva.
- Facoltativo: definire il log.
- Selezionare Crea.
Abilitazione dei log della pipeline
- Dalla lista di pipeline, selezionare la pipeline che si desidera abilitare.
- Nella pagina dei dettagli della pipeline selezionare Log.
- Selezionare Abilita log.
Configurazioni supportate
Informazioni importanti sulle configurazioni supportate.
- Le pipeline ML supportano solo le immagini dei container che risiedono nel registro OCI.
- La dimensione dell'immagine del contenitore è limitata a 40 GB in formato non compresso.
- L'utente che crea la risorsa Pipeline ML deve avere accesso all'immagine del contenitore nel registro OCI. In caso contrario, creare un criterio IAM di accesso utente prima di creare la risorsa Pipeline ML.
Immagini del contenitore su Apple Silicon M1 Mac
Per ulteriori informazioni, vedere Docker Image on Apple an M1 MacBook.
Digest immagine
Le immagini in un registro contenitore sono identificate da un repository, un nome e una tag. Inoltre, Docker offre a ogni versione di un'immagine un digest alfanumerico univoco. Quando si esegue il push di un'immagine contenitore aggiornata, si consiglia di assegnare all'immagine aggiornata un nuovo tag per identificarla, anziché riutilizzare un tag esistente, come procedura consigliata. Tuttavia, anche se si esegue il PUSH di un'immagine aggiornata e si assegna lo stesso nome e lo stesso tag di una versione precedente, la nuova versione sottoposta a PUSH ha un digest diverso rispetto alla versione precedente.
Quando si crea una risorsa pipeline, è necessario specificare il nome e la tag di una determinata versione di un'immagine. Per evitare incongruenze in seguito, le pipeline registrano anche il digest univoco di quella particolare versione dell'immagine. È inoltre possibile fornire il digest dell'immagine durante la creazione della risorsa pipeline.
Per impostazione predefinita, se si esegue il PUSH di una versione aggiornata di un'immagine nel registro Docker con lo stesso nome e lo stesso tag della versione originale dell'immagine, le pipeline continuano a utilizzare il digest originale per estrarre la versione originale dell'immagine. Questo potrebbe essere il comportamento richiesto. Tuttavia, se si desidera che le pipeline estraggano la versione successiva dell'immagine, è possibile modificare in modo esplicito il nome dell'immagine con il tag e il digest utilizzato dalle pipeline per identificare la versione dell'immagine da estrarre.