Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Dockerfile-Spezifikationen
Das Image, das Sie in Ihrem Dockerfile angeben, muss den Spezifikationen in den folgenden Abschnitten entsprechen, damit das Image erfolgreich erstellt werden kann.
Das Image wird ausgeführt
-
Entrypoint
— Wir empfehlen, den Einstiegspunkt in das Bild einzubetten, indem Sie DockerCMD
oderEntrypoint
Anweisungen. Sie können auch Dateien konfigurierenContainerEntrypoint
ContainerArguments
, die zur Laufzeit an den Container übergeben werden. -
EnvVariables
— Mit Studio können SieContainerEnvironment
Variablen konfigurieren, die einem Container zur Verfügung gestellt werden. Die Umgebungsvariable wird mit den Umgebungsvariablen von SageMaker AI überschrieben. Um Ihnen ein besseres Erlebnis zu bieten, sind die Umgebungsvariablen in der RegelAWS_
undSageMaker AI_namespaced
um Plattformumgebungen Priorität einzuräumen.Im Folgenden sind die Umgebungsvariablen aufgeführt:
-
AWS_REGION
-
AWS_DEFAULT_REGION
-
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
-
SageMaker AI_SPACE_NAME
-
Spezifikationen für den Benutzer und das Dateisystem
-
WorkingDirectory
— Das EBS Amazon-Volume für Ihren Speicherplatz ist auf dem Pfad installiert/home/sagemaker-user
. Sie können den Bereitstellungspfad nicht ändern. Verwenden Sie dieWORKDIR
Anweisung, um das Arbeitsverzeichnis Ihres Images auf einen Ordner darin festzulegen/home/sagemaker-user
. -
UID
— Die Benutzer-ID des Docker Container. UID=1000 ist ein unterstützter Wert. Sie können Ihren Benutzern Sudo-Zugriff hinzufügen. Sie IDs werden neu zugeordnet, um zu verhindern, dass ein im Container ausgeführter Prozess mehr Rechte als nötig hat. -
GID
— Die Gruppen-ID des Docker Container. GID=100 ist ein unterstützter Wert. Sie können Ihren Benutzern Sudo-Zugriff hinzufügen. Sie IDs werden neu zugeordnet, um zu verhindern, dass ein im Container ausgeführter Prozess mehr Rechte als nötig hat. -
Metadaten-Verzeichnisse — Die
/opt/ml
Verzeichnisse/opt/.sagemakerintenral
und, die von AWS verwendet werden. Die Metadatendatei in/opt/ml
enthält Metadaten zu Ressourcen wieDomainId
.Verwenden Sie den folgenden Befehl, um den Inhalt des Dateisystems anzuzeigen:
cat /opt/ml/metadata/resource-metadata.json {"AppType":"JupyterLab","DomainId":"
example-domain-id
","UserProfileName":"example-user-profile-name
,"ResourceArn":"arn:aws:sagemaker:AWS-Region
:111122223333
;:app/domain-ID
/user-ID
/Jupyte rLab/default","ResourceName":"default","AppImageVersion":"current"} -
Protokollverzeichnisse —
/var/log/studio
sind für die Protokollierungsverzeichnisse von JupyterLab und die damit verbundenen Erweiterungen reserviert. Wir empfehlen, dass Sie die Ordner nicht bei der Erstellung Ihres Images verwenden.
Gesundheitscheck und URL für Bewerbungen
-
Base URL
— Die Grundlage URL für den BYOI Antrag muss seinjupyterlab/default
. Sie können nur eine Anwendung haben und diese muss immer benannt seindefault
. -
HealthCheck API
— DerHostAgent
verwendet denHealthCheckAPI
AT-Port 8888, um den Zustand der JupyterLab Anwendung zu überprüfen.jupyterlab/default/api/status
ist der Endpunkt für die Integritätsprüfung. -
Home/Default URL
— Die/opt/ml
Verzeichnisse/opt/.sagemakerinternal
und, die von verwendet werden AWS. Die Metadatendatei in/opt/ml
enthält Metadaten zu Ressourcen wieDomainId
. -
Authentifizierung — Um die Authentifizierung für Ihre Benutzer zu aktivieren, deaktivieren Sie die token- oder kennwortbasierte Authentifizierung für Jupyter-Notebooks und lassen Sie alle Ursprünge zu.
Das Folgende ist ein Beispiel Amazon Linux 2 Dockerfile das die obigen Spezifikationen erfüllt:
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='*'
Das Folgende ist ein Beispiel Amazon SageMaker Distribution Dockerfile das die obigen Spezifikationen erfüllt:
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"]