Specifiche del file Docker - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Specifiche del file Docker

L'immagine specificata nel Dockerfile deve corrispondere alle specifiche nelle sezioni seguenti per creare l'immagine correttamente.

Esecuzione dell'immagine

  • Entrypoint— Consigliamo di incorporare il punto di ingresso nell'immagine utilizzando il Docker CMDo Entrypoint istruzioni. È inoltre possibile ContainerEntrypoint configurarli e ContainerArguments passarli al contenitore in fase di esecuzione.

  • EnvVariables— Con Studio, è possibile configurare ContainerEnvironment le variabili rese disponibili a un contenitore. La variabile di ambiente viene sovrascritta con le variabili di ambiente di SageMaker. Per offrirti un'esperienza migliore, le variabili di ambiente sono di solito AWS_ e danno priorità SageMaker_namespaced agli ambienti della piattaforma.

    Le seguenti sono le variabili di ambiente:

    • AWS_REGION

    • AWS_DEFAULT_REGION

    • AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

    • SageMaker_SPACE_NAME

Specifiche per l'utente e il file system

  • WorkingDirectory— Il EBS volume Amazon per il tuo spazio è montato sul percorso/home/sagemaker-user. Non puoi modificare il percorso di montaggio. Utilizzate le WORKDIR istruzioni per impostare la cartella di lavoro dell'immagine in una cartella all'interno/home/sagemaker-user.

  • UID— L'ID utente del Docker contenitore. UID=1000 è un valore supportato. Puoi aggiungere l'accesso sudo ai tuoi utenti. IDsVengono rimappati per evitare che un processo in esecuzione nel contenitore abbia più privilegi del necessario.

  • GID— L'ID del gruppo di Docker contenitore. GID=100 è un valore supportato. Puoi aggiungere l'accesso sudo ai tuoi utenti. IDsVengono rimappati per evitare che un processo in esecuzione nel contenitore abbia più privilegi del necessario.

  • Directory di metadati: le /opt/ml directory /opt/.sagemakerintenral e utilizzate da. AWS Il file di metadati /opt/ml contiene metadati relativi a risorse come. DomainId

    Utilizzate il seguente comando per mostrare il contenuto del file system:

    cat /opt/ml/metadata/resource-metadata.json {"AppType":"JupyterLab","DomainId":"example-domain-id","UserProfileName":"example-user-profile-name,"ResourceArn":"arn:aws:sagemaker:Regione AWS:111122223333;:app/domain-ID/user-ID/Jupyte rLab/default","ResourceName":"default","AppImageVersion":"current"}
  • Directory di registrazione: /var/logs/studio sono riservate alle directory di registrazione di JupyterLab e alle estensioni ad esse associate. Ti consigliamo di non utilizzare le cartelle per creare l'immagine.

Health check e URL candidature

  • Base URL— La base della URL BYOI domanda deve esserejupyterlab/default. È possibile avere una sola applicazione e deve sempre avere un nomedefault.

  • HealthCheck APIHostAgent Utilizza la HealthCheckAPI porta 8888 per verificare lo stato dell' JupyterLab applicazione. jupyterlab/default/api/statusè l'endpoint per il controllo sanitario.

  • Home/Default URL— Le /opt/ml directory /opt/.sagemakerinternal e che vengono utilizzate da. AWS Il file di metadati /opt/ml contiene metadati relativi a risorse come. DomainId

  • Autenticazione: per abilitare l'autenticazione per i tuoi utenti, disattiva il token dei notebook Jupyter o l'autenticazione basata su password e consenti tutte le origini.

Di seguito è riportato un esempio Amazon Linux 2 Dockerfile che soddisfa le specifiche precedenti:

FROM public.ecr.aws/amazonlinux/amazonlinux:2 ARG NB_USER="sagemaker-user" ARG NB_UID="1000" ARG NB_GID="100" RUN yum install --assumeyes python3 shadow-utils && \ useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \ yum clean all && \ python3 -m pip install jupyterlab RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade urllib3==1.26.6 USER ${NB_UID} CMD jupyter lab --ip 0.0.0.0 --port 8888 \ --ServerApp.base_url="/jupyterlab/default" \ --ServerApp.token='' \ --ServerApp.allow_origin='*'

Di seguito è riportato un esempio Amazon SageMaker Distribution Dockerfile che soddisfa le specifiche precedenti:

FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu ARG NB_USER="sagemaker-user" ARG NB_UID=1000 ARG NB_GID=100 ENV MAMBA_USER=$NB_USER USER root RUN apt-get update RUN micromamba install sagemaker-inference --freeze-installed --yes --channel conda-forge --name base USER $MAMBA_USER ENTRYPOINT ["jupyter-lab"] CMD ["--ServerApp.ip=0.0.0.0", "--ServerApp.port=8888", "--ServerApp.allow_origin=*", "--ServerApp.token=''", "--ServerApp.base_url=/jupyterlab/default"]