Specifiche dei file Dockerfile - 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 dei file Dockerfile

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. Per ulteriori informazioni, consulta CodeEditorAppImageConfig.

  • 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 directory /opt/.sagemakerinternal e /opt/ml le directory utilizzate da. AWS Il file di metadati /opt/ml contiene metadati su risorse come. DomainId

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

    cat /opt/ml/metadata/resource-metadata.json {"AppType":"CodeEditor","DomainId":"example-domain-id","UserProfileName":"example-user-profile-name,"ResourceArn":"arn:aws:sagemaker:Regione AWS:111122223333;:app/domain-ID/user-ID/CodeEditor/default","ResourceName":"default","AppImageVersion":"current"}
  • Directory di registrazione: /var/log/studio sono riservate alle directory di registrazione di Code Editor 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 esserecodeeditor/default. È possibile avere una sola applicazione e deve sempre avere un nomedefault.

  • Endpoint Health check: è necessario ospitare il server Code Editor sulla porta 0.0.0.0 8888 per SageMaker rilevarlo.

  • Autenticazione: è necessario eseguire l'autenticazione --without-connection-token all'apertura sagemaker-code-editor per consentire SageMaker l'autenticazione degli utenti.

Nota

Se utilizzi Amazon SageMaker Distribution come immagine di base, questi requisiti sono già soddisfatti come parte dello entrypoint-code-editor script incluso.

Esempi di file Dockerfile

Di seguito è riportato un Dockerfile di esempio che soddisfa le specifiche elencate nelle sezioni precedenti per creare un'immagine da zero utilizzando un ambiente di base: micromamba

FROM mambaorg/micromamba:latest ARG NB_USER="sagemaker-user" ARG NB_UID=1000 ARG NB_GID=100 USER root RUN micromamba install -y --name base -c conda-forge sagemaker-code-editor USER $NB_UID CMD eval "$(micromamba shell hook --shell=bash)"; \ micromamba activate base; \ sagemaker-code-editor --host 0.0.0.0 --port 8888 \ --without-connection-token \ --base-path "/CodeEditor/default"

Di seguito è riportato un Dockerfile di esempio che soddisfa le specifiche elencate nelle sezioni precedenti per creare un'immagine basata su Amazon SageMaker Distribution:

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 # install scrapy in the base environment RUN micromamba install -y --name base -c conda-forge scrapy # download VSCodeVim RUN \ wget https://github.com/VSCodeVim/Vim/releases/download/v1.27.2/vim-1.27.2.vsix \ -P /tmp/exts/ --no-check-certificate # Install the extension RUN \ extensionloc=/opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions \ && sagemaker-code-editor \ --install-extension "/tmp/exts/vim-1.27.2.vsix" \ --extensions-dir "${extensionloc}" USER $MAMBA_USER ENTRYPOINT ["entrypoint-code-editor"]