Dockerfile の仕様 - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Dockerfile の仕様

Dockerfile で指定するイメージは、イメージを正常に作成するには、次のセクションの仕様と一致する必要があります。

イメージを実行する

  • Entrypoint – を使用して、イメージにエントリポイントを埋め込むことをお勧めします。Docker CMD または 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 – のユーザー ID Docker コンテナ。UID=1000 はサポートされている値です。sudo アクセスをユーザーに追加できます。IDs は、コンテナで実行されているプロセスに必要以上の権限が付与されないように再マッピングされます。

  • GID – のグループ ID Docker コンテナ。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"}
  • ログ記録ディレクトリ – Code Editor のログ記録ディレクトリとそれに関連付けられた拡張機能用に予約/var/log/studioされています。イメージの作成にフォルダを使用しないことをお勧めします。

URL アプリケーションのヘルスチェックと

  • Base URL – URLBYOIアプリケーションのベースは である必要がありますcodeeditor/default。アプリケーションは 1 つだけ持つことができ、常に という名前にする必要がありますdefault

  • ヘルスチェックエンドポイント – 検出するには、Code Editor サーバー SageMaker を 0.0.0.0 ポート 8888 でホストする必要があります。

  • 認証 - ユーザーを認証sagemaker-code-editorするには、 を開く--without-connection-tokenときに SageMaker を渡す必要があります。

注記

Amazon SageMaker Distribution をベースイメージとして使用している場合、これらの要件は含まれているentrypoint-code-editorスクリプトの一部として既に処理されています。

Dockerfile サンプル

micromamba ベース環境を使用してゼロからイメージを作成するために、前のセクションで説明した仕様を満たす Dockerfile の例を次に示します。

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