

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

# 自訂映像
<a name="code-editor-custom-images"></a>

如果您需要的功能與 SageMaker Distribution 提供的功能不同，您可以自帶映像搭配您的自訂延伸模組和套件。您也可以使用它來個人化程式碼編輯器 UI，以滿足您自己的品牌或合規需求。

以下頁面將提供程式碼編輯器特定的資訊和範本，以建立您自己的自訂 SageMaker AI 映像。這是為了補充 Amazon SageMaker Studio 的資訊和指示，以建立您自己的 SageMaker AI 映像並自帶映像至 Studio。若要了解自訂 Amazon SageMaker AI 映像，以及如何自帶映像至 Studio，請參閱 [自帶映像 (BYOI)](studio-updated-byoi.md)。

**Topics**
+ [應用程式的運作狀態檢查和 URL](#code-editor-custom-images-app-healthcheck)
+ [Dockerfile 範例](#code-editor-custom-images-dockerfile-templates)

## 應用程式的運作狀態檢查和 URL
<a name="code-editor-custom-images-app-healthcheck"></a>
+ `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 範例
<a name="code-editor-custom-images-dockerfile-templates"></a>

下列範例是符合上述資訊和 [自訂映像規格](studio-updated-byoi-specs.md) 的 `Dockerfile`。

**注意**  
如果您要將自有映像帶入 SageMaker Unified Studio，則需要遵循《Amazon SageMaker Unified Studio 使用者指南》**中的 [Dockerfile 規格](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)。  
您可以在《Amazon SageMaker Unified Studio 使用者指南》**的 [Dockerfile 範例中](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)找到 SageMaker Unified Studio 的 `Dockerfile` 範例。

------
#### [ Example micromamba Dockerfile ]

以下是使用 [https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html) 基礎環境從頭開始建立映像的範例 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"
```

------
#### [ Example SageMaker AI Distribution Dockerfile ]

以下是根據 [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution/tree/main) 建立映像的範例 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"]
```

------