

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 自定义镜像
<a name="code-editor-custom-images"></a>

如果您需要的功能与 SageMaker 发行版提供的功能不同，则可以自带带有自定义扩展和软件包的镜像。您还可以使用它来个性化 Code Editor 用户界面，以满足自己的品牌或合规需求。

下一页将提供特定于代码编辑器的信息和模板，供您创建自己的自定义 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`。
+ Health check 端点 — 你必须将代码编辑器服务器托管在 0.0.0.0 端口 8888， SageMaker AI 才能对其进行检测。
+  身份验证 — 您必须在打开`--without-connection-token`时通过`sagemaker-code-editor`才能允许 SageMaker AI 对您的用户进行身份验证。

**注意**  
如果您使用 Amazon Distrib SageMaker ution 作为基础图片，则这些要求已作为随附`entrypoint-code-editor`脚本的一部分得到满足。

## Dockerfile 示例
<a name="code-editor-custom-images-dockerfile-templates"></a>

以下示例是符合上述信息与[自定义映像规范](studio-updated-byoi-specs.md)的 `Dockerfile`。

**注意**  
如果您要将自己的镜像带到 SageMaker Unified Studio，则需要遵循*亚马逊 Unifie SageMaker d Studio 用户*[指南中的 Dockerfile 规范](https://docs.amazonaws.cn/sagemaker-unified-studio/latest/userguide/byoi-specifications.html)。  
`Dockerfile` SageMaker Unified Studio 的示例可以在*亚马逊 Unified Studio 用户指南的 Docker SageMaker f* [ile 示例](https://docs.amazonaws.cn/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example)中找到。

------
#### [ 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 ]

以下是基于[亚马逊 A SageMaker I](https://github.com/aws/sagemaker-distribution/tree/main) 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"]
```

------