Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
L'image que vous spécifiez dans votre Dockerfile doit correspondre aux spécifications des sections suivantes pour que l'image soit correctement créée.
Exécution de l'image
-
Entrypoint
— Nous vous recommandons d'intégrer le point d'entrée dans l'image à l'aide du DockerCMD
ouEntrypoint
des instructions. Vous pouvez également les configurerContainerEntrypoint
etContainerArguments
les transmettre au conteneur lors de l'exécution. Pour de plus amples informations, veuillez consulterCodeEditorAppImageConfig
. -
EnvVariables
— Avec Studio, vous pouvez configurerContainerEnvironment
les variables mises à disposition d'un conteneur. La variable d'environnement est remplacée par les variables d'environnement de SageMaker AI. Pour vous offrir une meilleure expérience, les variables d'environnement sont généralementAWS_
etSageMaker AI_namespaced
pour donner la priorité aux environnements de plateforme.Les variables d'environnement sont les suivantes :
-
AWS_REGION
-
AWS_DEFAULT_REGION
-
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
-
SAGEMAKER_SPACE_NAME
-
Spécifications pour l'utilisateur et le système de fichiers
-
WorkingDirectory
— Le volume Amazon EBS correspondant à votre espace est monté sur le chemin/home/sagemaker-user
. Vous ne pouvez pas modifier le chemin de montage. Utilisez lesWORKDIR
instructions pour définir le répertoire de travail de votre image sur un dossier qu'il contient/home/sagemaker-user
. -
UID
— Le nom d'utilisateur du Docker contenant. UID=1000 est une valeur prise en charge. Vous pouvez ajouter un accès sudo à vos utilisateurs. Ils IDs sont remappés pour empêcher un processus exécuté dans le conteneur de disposer de plus de privilèges que nécessaire. -
GID
— L'identifiant de groupe du Docker contenant. GID=100 est une valeur prise en charge. Vous pouvez ajouter un accès sudo à vos utilisateurs. Ils IDs sont remappés pour empêcher un processus exécuté dans le conteneur de disposer de plus de privilèges que nécessaire. -
Répertoires de métadonnées :
/opt/ml
répertoires/opt/.sagemakerinternal
et utilisés par AWS. Le fichier de métadonnées dans/opt/ml
contient des métadonnées sur des ressources telles queDomainId
.Utilisez la commande suivante pour afficher le contenu du système de fichiers :
cat /opt/ml/metadata/resource-metadata.json {"AppType":"CodeEditor","DomainId":"
example-domain-id
","UserProfileName":"example-user-profile-name
,"ResourceArn":"arn:aws:sagemaker:Région AWS
:111122223333
;:app/domain-ID
/user-ID
/CodeEditor/default","ResourceName":"default","AppImageVersion":"current"} -
Répertoires de journalisation :
/var/log/studio
ils sont réservés aux répertoires de journalisation de Code Editor et aux extensions qui lui sont associées. Nous vous recommandons de ne pas utiliser les dossiers pour créer votre image.
Health check et URL des applications
-
Base URL
— L'URL de base de l'application BYOI doit êtrecodeeditor/default
. Vous ne pouvez avoir qu'une seule application et elle doit toujours être nomméedefault
. -
Health check endpoint — Vous devez héberger votre serveur Code Editor sur le port 0.0.0.0 8888 pour que l' SageMaker IA le détecte.
-
Authentification — Vous devez réussir
sagemaker-code-editor
à l'--without-connection-token
ouverture pour permettre à l' SageMaker IA d'authentifier vos utilisateurs.
Note
Si vous utilisez Amazon SageMaker Distribution comme image de base, ces exigences sont déjà prises en compte dans le entrypoint-code-editor
script inclus.
Exemples de fichiers Dockerfile
Voici un exemple de Dockerfile qui répond aux spécifications répertoriées dans les sections précédentes pour créer une image à partir de zéro à l'aide d'un environnement de 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"
Voici un exemple de Dockerfile répondant aux spécifications répertoriées dans les sections précédentes pour créer une image basée sur Amazon SageMaker AI 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"
]