Además de definir pasos de pipeline basados en trabajos y scripts, puede utilizar imágenes de contenedor personalizadas para definir el tiempo de ejecución del paso.
Puede seleccionar la imagen de contenedor, el comando o el punto de entrada para la ejecución del contenedor. Puede proporcionar el código personalizado en un script o un archivo comprimido, lo que le permite actualizar el código sin volver a crear la imagen.
Configuración de Paso BYOC
(Opcional) Seleccione De contenedor.
En Configuración de contenedor, seleccione Configurar.
En el panel Configurar el entorno de contenedor:
Seleccione un repositorio de la lista. Si el repositorio está en otro compartimento, seleccione Cambiar compartimento.
Seleccione una imagen de la lista.
(Opcional) Introduzca un punto de entrada. Para agregar otro, seleccione +Add parameter.
(Opcional) Introduzca un CMD. Para agregar otro, seleccione +Add parameter.
(Opcional) Introduzca un resumen de imagen.
(Opcional) Si utiliza la verificación de firma, introduzca el OCID de la firma de imagen. Por ejemplo, ocid1.containerimagesignature.oc1.iad.aaaaaaaaab....
Seleccione Seleccionar.
(Opcional) Cargue el artefacto de paso arrastrándolo al cuadro. Este paso es opcional solo si BYOC está configurado.
artefacto de modelos 🔗
La carga de un artefacto de paso al utilizar BYOC es opcional. Sin embargo, le permite cambiar el código que se ejecuta dentro del contenedor sin volver a crear la imagen.
Los artefactos de paso se montan en el contenedor en la carpeta /home/datascience/. Si un artefacto es un archivo, su contenido se extrae en la carpeta /home/datascience/decompressed_artifact.
Imagen de docker común
Es conveniente crear una imagen de contenedor genérica con el entorno necesario (por ejemplo, Python 3.8 y bibliotecas básicas como se muestra en Inicio rápido) y agregar scripts de Python más tarde como artefactos de paso.
Artefactos personalizados: sustitución de carpeta
Al utilizar un artefacto de paso personalizado, el servicio monta un volumen con el artefacto en la carpeta /home/datascience, sustituyendo la carpeta de la imagen de contenedor. Los artefactos de archivo (zip/tar/...) se descomprimen y el contenido se presenta en la carpeta /home/datascience/decompressed_artifact.
Creación de un pipeline de contenedor - Inicio rápido 🔗
Siga estos pasos para crear un paso de pipeline de contenedor.
Creación del contenedor 🔗
Utilice una imagen existente en OCI Registry o cree una nueva imagen con el archivo Dockerfile de ejemplo. Este es el código de ejemplo que crea una imagen que permite ejecutar scripts de Python.
Archivo Dockerfile:
Copiar
FROM python:3.8-slim AS base
ENV DATASCIENCE_USER datascience
ENV DATASCIENCE_UID 1000
ENV HOME /home/$DATASCIENCE_USER
RUN python -m pip install \
oci \
ocifs
COPY simplest.py .
CMD ["python", "simplest.py"]
Dockerfile asume que el script, simplest.py, está en la misma carpeta. A continuación, se muestra un código de ejemplo para simplest.py:
Copiar
import datetime
import os
import time
pipe_id = os.environ.get("PIPELINE_RUN_OCID", "LOCAL")
print(f"Starting pipeline run: {pipe_id}")
print(f"Current timestamp in UTC: {datetime.datetime.utcnow()}")
print("Delay 5s")
time.sleep(5)
print("Environment variables:")
for item, value in os.environ.items():
print(f"\t {item}: {value}")
Ejecute el comando de creación de docker:
Copiar
docker build -t byoc:1.0.0 .
Prueba del contenedor 🔗
Antes de transferir la imagen a un registro de contenedor, puede probarla localmente.
Ejecute la imagen localmente:
Copiar
docker run --rm -it -v "/home/lin/.oci:/home/datascience/.oci" byoc:1.0.0
docker tag <local_image_name>:<local_version><region>.ocir.io/<tenancy_ocir_namespace>/<repo>:<version>
docker tag byoc:1.0.0 iad.ocir.io/testtenancy/byoc:1.0.0
Consulte la sección Políticas de pipeline para asegurarse de que tiene políticas que permiten al pipeline ejecutar el recurso extraer imágenes de contenedor del registro de contenedor.
Cree un pipeline para utilizar el contenedor.
Cree un pipeline con un nombre adecuado, por ejemplo, BYOC Demo name.
Seleccione Agregar pasos de pipeline.
Asigne un nombre al paso, por ejemplo, Step 1.
Para utilizar Bring Your Own Container, seleccione From container.
En Configuración de contenedor, seleccione Configurar.
En Configurar el entorno de contenedor:
Seleccione el inicio rápido o el byoc del repositorio de la lista. Si el repositorio está en otro compartimento, seleccione Cambiar compartimento.
Seleccione la imagen, iad.ocir.io/idtlxnfdweil/quickstart/byoc:1.0.0, de la lista.
Seleccione Seleccionar.
Seleccione Guardar.
Opcional: defina el registro.
Haga clic en Crear.
Activación de los logs de pipeline 🔗
Cree un pipeline e inícielo.Esta tarea es opcional, si no desea generar los logs, puede ignorarla.
En la lista de pipelines, seleccione el pipeline que desea activar.
En la página de detalles del pipeline, seleccione Logs.
Seleccione Activar Logs.
Configuraciones Soportadas 🔗
Información importante sobre las configuraciones admitidas.
Los pipelines de aprendizaje automático solo soportan imágenes de contenedor que residan en OCI Registry.
El tamaño de la imagen de contenedor está limitado a 40 GB sin comprimir.
El usuario que crea el recurso de pipeline de aprendizaje automático debe tener acceso a la imagen de contenedor en OCI Registry. Si no es así, cree una política de IAM de acceso de usuario antes de crear el recurso de pipeline de aprendizaje automático.
Las imágenes de un registro de contenedores se identifican por repositorio, nombre y etiqueta. Además, Docker proporciona a cada versión de una imagen un resumen alfanumérico único. Al transferir una imagen de contenedor actualizada, recomendamos proporcionar a la imagen actualizada una nueva etiqueta para identificarla, en lugar de reutilizar una etiqueta existente, como mejores prácticas. Sin embargo, aunque introduzca una imagen actualizada y le asigne el mismo nombre y la etiqueta que una versión anterior, la nueva versión transferida tiene un resumen diferente de la versión anterior.
Al crear un recurso de pipeline, se especifica el nombre y la etiqueta de una versión concreta de una imagen. Para evitar inconsistencias más adelante, los pipelines también registran el resumen único de esa versión concreta de la imagen. También puede proporcionar el resumen de la imagen al crear el recurso de pipeline.
Por defecto, si transfiere una versión actualizada de una imagen al registro de Docker con el mismo nombre y etiqueta que la versión original de la imagen, los pipelines siguen utilizando el resumen original para extraer la versión original de la imagen. Este podría ser el comportamiento que requiere. Sin embargo, si desea que los pipelines extraigan la versión posterior de la imagen, puede cambiar explícitamente el nombre de la imagen con la etiqueta y el resumen que utilizan los pipelines para identificar qué versión de la imagen desea extraer.