Dockerfile の仕様 - Amazon SageMaker

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

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ベース環境を使用してゼロからイメージを作成するための、前のセクションで説明した仕様を満たすサンプル 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"]