Spesifikasi Dockerfile - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Spesifikasi Dockerfile

Gambar yang Anda tentukan di Dockerfile Anda harus sesuai dengan spesifikasi di bagian berikut untuk membuat gambar dengan sukses.

Menjalankan gambar

  • Entrypoint— Kami merekomendasikan untuk menyematkan titik masuk ke dalam gambar menggunakan Docker CMDatau Entrypoint instruksi. Anda juga dapat mengonfigurasi ContainerEntrypoint dan ContainerArguments yang diteruskan ke wadah saat runtime.

  • EnvVariables— Dengan Studio, Anda dapat mengonfigurasi ContainerEnvironment variabel yang tersedia untuk wadah. Variabel lingkungan ditimpa dengan variabel lingkungan dari SageMaker. Untuk memberi Anda pengalaman yang lebih baik, variabel lingkungan biasanya AWS_ dan SageMaker_namespaced memprioritaskan lingkungan platform.

    Berikut ini adalah variabel lingkungan:

    • AWS_REGION

    • AWS_DEFAULT_REGION

    • AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

    • SageMaker_SPACE_NAME

Spesifikasi untuk pengguna dan sistem file

  • WorkingDirectory— EBS Volume Amazon untuk ruang Anda dipasang di jalur/home/sagemaker-user. Anda tidak dapat mengubah jalur pemasangan. Gunakan WORKDIR instruksi untuk mengatur direktori kerja gambar Anda ke folder di dalamnya/home/sagemaker-user.

  • UID— ID pengguna dari Docker kontainer. UID= 1000 adalah nilai yang didukung. Anda dapat menambahkan akses sudo ke pengguna Anda. Itu IDs dipetakan ulang untuk mencegah proses yang berjalan di wadah memiliki lebih banyak hak istimewa daripada yang diperlukan.

  • GID— ID grup dari Docker kontainer. GID=100 adalah nilai yang didukung. Anda dapat menambahkan akses sudo ke pengguna Anda. Itu IDs dipetakan ulang untuk mencegah proses yang berjalan di wadah memiliki lebih banyak hak istimewa daripada yang diperlukan.

  • Direktori metadata — Direktori /opt/.sagemakerintenral dan /opt/ml direktori yang digunakan oleh. AWS File metadata di /opt/ml berisi metadata tentang sumber daya seperti. DomainId

    Gunakan perintah berikut untuk menampilkan isi sistem file:

    cat /opt/ml/metadata/resource-metadata.json {"AppType":"JupyterLab","DomainId":"example-domain-id","UserProfileName":"example-user-profile-name,"ResourceArn":"arn:aws:sagemaker:Wilayah AWS:111122223333;:app/domain-ID/user-ID/Jupyte rLab/default","ResourceName":"default","AppImageVersion":"current"}
  • Direktori logging — /var/logs/studio dicadangkan untuk direktori logging JupyterLab dan ekstensi yang terkait dengannya. Kami menyarankan Anda untuk tidak menggunakan folder dalam membuat gambar Anda.

Pemeriksaan kesehatan dan URL untuk aplikasi

  • Base URL— Dasar URL untuk BYOI aplikasi harusjupyterlab/default. Anda hanya dapat memiliki satu aplikasi dan harus selalu diberi namadefault.

  • HealthCheck APIHostAgent Menggunakan HealthCheckAPI at port 8888 untuk memeriksa kesehatan JupyterLab aplikasi. jupyterlab/default/api/statusadalah titik akhir untuk pemeriksaan kesehatan.

  • Home/Default URL/opt/ml Direktori /opt/.sagemakerinternal dan direktori yang digunakan oleh AWS. File metadata di /opt/ml berisi metadata tentang sumber daya seperti. DomainId

  • Otentikasi — Untuk mengaktifkan otentikasi bagi pengguna Anda, matikan token notebook Jupyter atau otentikasi berbasis kata sandi dan izinkan semua asal.

Berikut ini adalah contoh Amazon Linux 2 Dockerfile yang memenuhi spesifikasi sebelumnya:

FROM public.ecr.aws/amazonlinux/amazonlinux:2 ARG NB_USER="sagemaker-user" ARG NB_UID="1000" ARG NB_GID="100" RUN yum install --assumeyes python3 shadow-utils && \ useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \ yum clean all && \ python3 -m pip install jupyterlab RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade urllib3==1.26.6 USER ${NB_UID} CMD jupyter lab --ip 0.0.0.0 --port 8888 \ --ServerApp.base_url="/jupyterlab/default" \ --ServerApp.token='' \ --ServerApp.allow_origin='*'

Berikut ini adalah contoh Amazon SageMaker Distribution Dockerfile yang memenuhi spesifikasi sebelumnya:

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 RUN apt-get update RUN micromamba install sagemaker-inference --freeze-installed --yes --channel conda-forge --name base USER $MAMBA_USER ENTRYPOINT ["jupyter-lab"] CMD ["--ServerApp.ip=0.0.0.0", "--ServerApp.port=8888", "--ServerApp.allow_origin=*", "--ServerApp.token=''", "--ServerApp.base_url=/jupyterlab/default"]