碼頭文件規格 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

碼頭文件規格

您在 Dockerfile 中指定的映像檔必須符合以下各節中的規格,才能成功建立映像檔。

執行映像

  • Entrypoint— 我們建議您使用DockerCMDEntrypoint指示將入口點嵌入影像中。您還可以配置ContainerEntrypointContainerArguments在運行時傳遞給容器。如需詳細資訊,請參閱 CodeEditorAppImageConfig

  • EnvVariables— 使用 Studio,您可以設定可供容器使用的ContainerEnvironment變數。環境變數會以中的環境變數覆寫 SageMaker。為了提供您更好的體驗,環境變數通常AWS_會優先考慮平台環境。SageMaker_namespaced

    以下是環境變量:

    • AWS_REGION

    • AWS_DEFAULT_REGION

    • AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

    • SAGEMAKER_SPACE_NAME

使用者和檔案系統的規格

  • WorkingDirectory— 您空間的 Amazon EBS 磁碟區已安裝在路徑/home/sagemaker-user上。您無法變更裝載路徑。使用指WORKDIR令將影像的工作目錄設定為其中的資料夾/home/sagemaker-user

  • UID— Docker 容器的使用者 ID。UID = 1000 是一個支援的值。您可以將 sudo 存取權新增至您的使用者。ID 會重新對應,以防止在容器中執行的處理程序擁有超過必要的權限。

  • GID— Docker 容器的群組識別碼。GID = 100 是一個支持的值。您可以將 sudo 存取權新增至您的使用者。ID 會重新對應,以防止在容器中執行的處理程序擁有超過必要的權限。

  • 中繼資料目錄 — 所使用的/opt/.sagemakerinternal/opt/ml目錄 AWS。中的元數據文件/opt/ml包含有關資源的元數據,例如DomainId

    使用以下命令來顯示文件系統內容:

    cat /opt/ml/metadata/resource-metadata.json {"AppType":"CodeEditor","DomainId":"example-domain-id","UserProfileName":"example-user-profile-name,"ResourceArn":"arn:aws:sagemaker:AWS 區域:111122223333;:app/domain-ID/user-ID/CodeEditor/default","ResourceName":"default","AppImageVersion":"current"}
  • 記錄目錄 — /var/log/studio 保留給程式碼編輯器的記錄目錄及其相關聯的擴充功能。建議您不要在建立影像時使用這些資料夾。

應用程式的 Health 狀態檢查和 URL

  • Base URL— BYOI 應用程式的基本網址必須是。codeeditor/default您只能有一個應用程序,並且必須始終命名default

  • 運作 Health 檢查端點 — 您必須在 0.0.0.0 連接埠 8888 上託管您的程式碼編輯器伺服器,才能偵測 SageMaker 到它。

  • 驗證 — 您必須在開啟--without-connection-token時通過,sagemaker-code-editor SageMaker 才能驗證您的使用者。

注意

如果您使用 Amazon Di SageMaker stribution 做為基本映像,則這些要求已作為包含entrypoint-code-editor指令碼的一部分進行處理。

碼頭檔案範例

以下是符合前幾節中列出的規格的 Dockerfile 範例,可使用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"

以下是符合上一節中列出的規格的 Dockerfile 範例,可根據 Amazon SageMaker 分佈建立映像:

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