Spécifications de Dockerfile - Amazon SageMaker

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.

Spécifications de Dockerfile

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 des Entrypoint instructions Docker CMD or. Vous pouvez également les configurer ContainerEntrypoint et ContainerArguments les transmettre au conteneur lors de l'exécution. Pour de plus amples informations, veuillez consulter CodeEditorAppImageConfig.

  • EnvVariables— Avec Studio, vous pouvez configurer ContainerEnvironment les variables mises à disposition d'un conteneur. La variable d'environnement est remplacée par les variables d'environnement de SageMaker. Pour vous offrir une meilleure expérience, les variables d'environnement sont généralement AWS_ et SageMaker_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 EBS volume Amazon correspondant à votre espace est monté sur le chemin/home/sagemaker-user. Vous ne pouvez pas modifier le chemin de montage. Utilisez les WORKDIR instructions pour définir le répertoire de travail de votre image sur un dossier qu'il contient/home/sagemaker-user.

  • UID— L'ID utilisateur du Docker conteneur. 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'ID de groupe du Docker conteneur. 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 pour les applications

  • Base URL— La base URL de la BYOI demande 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 le SageMaker détecter.

  • Authentification — Vous devez réussir --without-connection-token lors de sagemaker-code-editor l'ouverture pour SageMaker permettre l'authentification de 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 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 micromambabase :

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 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"]