翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Dockerfile の仕様
Dockerfile で指定するイメージは、イメージを正常に作成するために、次のセクションの仕様と一致する必要があります。
イメージを実行する
-
Entrypoint
– DockerCMD
またはEntrypoint
の手順を使用して、エントリポイントをイメージに埋め込むことをお勧めします。実行時にコンテナに渡ContainerArguments
されるContainerEntrypoint
と を設定することもできます。詳細については、「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 アクセスを追加できます。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
。アプリケーションは 1 つのみ持つことができ、常に という名前にする必要がありますdefault
。 -
ヘルスチェックエンドポイント – が検出するには、Code Editor サーバーを 0.0.0.0 ポート 8888 SageMaker でホストする必要があります。
-
認証 – を開く
--without-connection-token
ときに を渡sagemaker-code-editor
して、 がユーザー SageMaker を認証できるようにする必要があります。
注記
Amazon SageMaker Distribution をベースイメージとして使用している場合、これらの要件はすでに含まれている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"
以下は、Amazon SageMaker Distribution に基づいてイメージを作成するために前のセクションで説明した仕様を満たすサンプル Dockerfile
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"
]