Especificações do Dockerfile - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Especificações do Dockerfile

A imagem que você especifica em seu Dockerfile deve corresponder às especificações nas seções a seguir para criar a imagem com sucesso.

Executando a imagem

  • Entrypoint— Recomendamos incorporar o ponto de entrada na imagem usando as Entrypoint instruções Docker CMD ou. Você também pode configurar ContainerEntrypoint e ContainerArguments que são passados para o contêiner em tempo de execução. Para ter mais informações, consulte CodeEditorAppImageConfig.

  • EnvVariables— Com o Studio, você pode configurar ContainerEnvironment variáveis que são disponibilizadas para um contêiner. A variável de ambiente é substituída pelas variáveis de ambiente de SageMaker. Para proporcionar uma experiência melhor, as variáveis de ambiente geralmente são AWS_ e dão prioridade SageMaker_namespaced aos ambientes da plataforma.

    A seguir estão as variáveis de ambiente:

    • AWS_REGION

    • AWS_DEFAULT_REGION

    • AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

    • SAGEMAKER_SPACE_NAME

Especificações para o usuário e o sistema de arquivos

  • WorkingDirectory— O volume do Amazon EBS do seu espaço está montado no caminho/home/sagemaker-user. Você não pode mudar o caminho da montagem. Use as WORKDIR instruções para definir o diretório de trabalho da sua imagem como uma pasta interna/home/sagemaker-user.

  • UID— O ID do usuário do Docker contêiner. UID=1000 é um valor suportado. Você pode adicionar acesso sudo aos seus usuários. As IDs são remapeadas para evitar que um processo em execução no contêiner tenha mais privilégios do que o necessário.

  • GID— O ID do grupo do Docker contêiner. GID=100 é um valor suportado. Você pode adicionar acesso sudo aos seus usuários. As IDs são remapeadas para evitar que um processo em execução no contêiner tenha mais privilégios do que o necessário.

  • Diretórios de metadados — Os /opt/ml diretórios /opt/.sagemakerinternal e que são usados por. AWS O arquivo de metadados /opt/ml contém metadados sobre recursos comoDomainId.

    Use o comando a seguir para mostrar o conteúdo do sistema de arquivos:

    cat /opt/ml/metadata/resource-metadata.json {"AppType":"CodeEditor","DomainId":"example-domain-id","UserProfileName":"example-user-profile-name,"ResourceArn":"arn:aws:sagemaker:Região da AWS:111122223333;:app/domain-ID/user-ID/CodeEditor/default","ResourceName":"default","AppImageVersion":"current"}
  • Diretórios de registro — /var/log/studio são reservados para os diretórios de registro do Editor de Código e as extensões associadas a ele. Recomendamos que você não use as pastas para criar sua imagem.

Health check e URL para aplicativos

  • Base URL— O URL base para o aplicativo BYOI deve sercodeeditor/default. Você só pode ter um aplicativo e ele sempre deve ser nomeadodefault.

  • Endpoint de verificação de integridade — Você deve hospedar seu servidor do Editor de Código na porta 0.0.0.0 8888 para SageMaker detectá-lo.

  • Autenticação — Você deve passar --without-connection-token ao abrir sagemaker-code-editor para permitir SageMaker a autenticação de seus usuários.

nota

Se você estiver usando a Amazon SageMaker Distribution como imagem base, esses requisitos já foram atendidos como parte do entrypoint-code-editor script incluído.

Amostras do Dockerfile

Veja a seguir um exemplo de Dockerfile que atende às especificações listadas nas seções anteriores para criar uma imagem do zero usando um ambiente micromambabásico:

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"

Veja a seguir um exemplo de Dockerfile que atende às especificações listadas nas seções anteriores para criar uma imagem com base na Amazon SageMaker Distribution:

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