本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您在 Dockerfile 中指定的映像必須符合下列各節中的規格,才能成功建立映像。
執行映像
-
Entrypoint
– 建議您使用 DockerCMD
或Entrypoint
指示,將進入點內嵌至映像中。您也可以設定ContainerEntrypoint
,ContainerArguments
並在執行時間傳遞至容器。如需詳細資訊,請參閱CodeEditorAppImageConfig
。 -
EnvVariables
– 使用 Studio,您可以設定可供容器使用的ContainerEnvironment
變數。環境變數會以 SageMaker AI 的環境變數覆寫。為了提供您更好的體驗,環境變數通常是SageMaker AI_namespaced
AWS_
,並優先考慮平台環境。以下是環境變數:
-
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 存取權給使用者。系統會重新映射 IDs,以防止容器中執行的程序具有比所需更多的權限。 -
GID
– Docker容器的群組 ID。GID=100 是支援的值。您可以新增 sudo 存取權給使用者。系統會重新映射 IDs,以防止容器中執行的程序具有比所需更多的權限。 -
中繼資料目錄 – 使用的
/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
保留給程式碼編輯器的記錄目錄及其相關聯的延伸。建議您不要在建立映像時使用資料夾。
應用程式的運作狀態檢查和 URL
-
Base URL
– BYOI 應用程式的基本 URL 必須為codeeditor/default
。您只能有一個應用程式,且必須一律命名為default
。 -
運作狀態檢查端點 – 您必須將程式碼編輯器伺服器託管在 0.0.0.0 連接埠 8888,SageMaker AI 才能偵測它。
-
身分驗證 – 您必須在開啟
--without-connection-token
時通過sagemaker-code-editor
,以允許 SageMaker AI 驗證您的使用者。
注意
如果您使用 Amazon SageMaker Distribution 作為基礎映像,這些要求已作為包含entrypoint-code-editor
指令碼的一部分處理。
Dockerfile 範例
以下是 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 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"
]