Dockerfile 사양 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Dockerfile 사양

Dockerfile에서 지정하는 이미지가 다음 섹션의 사양과 일치해야 이미지를 성공적으로 생성할 수 있습니다.

이미지 실행

  • Entrypoint— or 지침을 사용하여 이미지에 진입점을 삽입하는 것이 좋습니다. 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— 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— URL BYOI 신청 근거는 다음과 같아야 합니다codeeditor/default. 애플리케이션은 하나만 사용할 수 있으며 항상 이름을 지정해야 합니다default.

  • 상태 점검 엔드포인트 — 코드 편집기 서버를 0.0.0.0 포트 8888에서 호스팅해야 감지할 수 있습니다. SageMaker

  • 인증 — 열 --without-connection-token 때 통과해야 사용자를 sagemaker-code-editor SageMaker 인증할 수 있습니다.

참고

Amazon SageMaker Distribution을 기본 이미지로 사용하는 경우 이러한 요구 사항은 포함된 entrypoint-code-editor 스크립트의 일부로 이미 처리되었습니다.

도커파일 샘플

다음은 기본 환경을 사용하여 이미지를 처음부터 생성하기 위한 이전 섹션에 나열된 사양을 충족하는 샘플 Dockerfile입니다. micromamba

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 Distribution을 기반으로 이미지를 생성하기 위한 이전 섹션에 나열된 사양을 충족하는 샘플 Dockerfile입니다. SageMaker

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