All Products
Search
Document Center

MaxCompute:Custom image

Last Updated:Oct 30, 2026

Custom image MaxCompute memungkinkan Anda mengemas dependensi pihak ketiga ke dalam Docker image untuk digunakan dalam pekerjaan SQL dan Python (PyODPS atau MaxFrame).

Latar belakang

Pengembangan SQL dan Python di MaxCompute sering kali memerlukan berbagai paket pihak ketiga. Fitur pengelolaan custom image memungkinkan Anda menggunakan Docker image untuk membangun lingkungan pengembangan yang lengkap bagi pekerjaan SQL dan Python (PyODPS atau MaxFrame) di MaxCompute.

Prasyarat

  • Ukuran image: Ukuran maksimum satu custom image di MaxCompute adalah 10 GB.

  • Jumlah image: Setiap penyewa MaxCompute dapat mengunggah hingga 10 image.

  • Persyaratan versi ACR: Hanya instans Standard Edition dan Premium Edition dari ACR Enterprise Edition yang didukung.

  • Persyaratan arsitektur CPU: Bangun image pada arsitektur CPU x86_64. Arsitektur non-x86_64, seperti chip seri M macOS dan ARM, tidak didukung.

  • Persyaratan versi library: Lingkungan runtime pekerjaan MaxCompute setara dengan CentOS 7. Saat membangun image, gunakan versi paket yang kompatibel dengan CentOS 7. Sumber yum dalam base image telah dikonfigurasi sebelumnya untuk menggunakan sumber image Alibaba Cloud CentOS 7.

  • Batasan direktori:

    Saat menggunakan alat seperti pip atau yum untuk memasang paket, jangan menempatkan file pribadi di direktori /home/admin, /usr/local/lib, /usr/ali, /apsara. Saat container dimulai, MaxCompute memasang lingkungan runtime-nya ke direktori ini, sehingga menimpa konten aslinya.

Prosedur

Langkah 1: Instal Docker

Langkah 2: Berikan izin

Berikan akun atau pengguna izin baca untuk RAM role, izin operasional untuk ACR, dan izin operasional untuk custom image MaxCompute sesuai penjelasan dalam tabel berikut.

Kasus penggunaan

Jenis akun

Izin

Referensi

Izin baca untuk RAM role

Akun Alibaba Cloud (disarankan)

Secara default, Akun Alibaba Cloud memiliki izin baca untuk RAM role. Tidak diperlukan otorisasi.

T/A

RAM user

Berikan izin AliyunRAMReadOnlyAccess.

Izin operasional ACR

Akun Alibaba Cloud (disarankan)

Secara default, Akun Alibaba Cloud memiliki semua izin untuk ACR. Tidak diperlukan otorisasi.

T/A

RAM user

RAM user memerlukan izin AliyunContainerRegistryReadOnlyAccess untuk mengoperasikan ACR.

Memberikan otorisasi RAM user untuk ACR

Izin operasional custom image MaxCompute

Akun Alibaba Cloud (disarankan)

Secara default, Akun Alibaba Cloud memiliki izin penuh untuk mengelola custom image di MaxCompute. Tidak diperlukan otorisasi.

T/A

RAM user

Agar RAM user dapat mengelola custom image MaxCompute, berikan izin yang diperlukan berdasarkan kebutuhan bisnis Anda.

Langkah 3: Bangun custom image

Bangun custom image menggunakan Dockerfile berbasis base image MaxCompute.

Alamat gambar

  • Alamat base image CentOS MaxCompute

    • Alamat publik: maxcompute-oxs-registry.<region>.cr.aliyuncs.com/maxcompute_image/base_image:latest

    • Alamat VPC: maxcompute-oxs-registry-vpc.<region>.cr.aliyuncs.com/maxcompute_image/base_image:latest

    Base image menyediakan lingkungan dasar yang mencakup Python 3.7, Python 3.11, pip, dan yum.

  • Alamat base image Ubuntu MaxCompute

    • Alamat publik: maxcompute-oxs-registry.<region>.cr.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest

    • Alamat VPC: maxcompute-oxs-registry-vpc.<region>.cr.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest

  1. Buat Dockerfile berbasis base image MaxCompute. Jalankan perintah berikut:

    vim DockerFile
  2. Tambahkan konten berikut ke Dockerfile:

    # Gunakan base image CentOS MaxCompute.
    FROM registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/base_image:latest
    
    # Untuk menggunakan image Ubuntu, ganti alamat image dengan registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest.
    
    # Instal dependensi sistem.
    RUN yum install vi -y
    
    # Instal library pihak ketiga.
    RUN /usr/ali/python3.7/bin/python3 -m pip install --no-cache-dir pandas
  3. Bangun image dari Dockerfile.

    sudo docker build -f DockerFile -t <image_name>:<tag> .

    Parameter:

    • image_name: Nama custom image.

    • tag: Versi custom image.

Langkah 4: Push image ke ACR

  1. Login ke konsol Container Registry dan pilih wilayah di pojok kiri atas.

  2. Di panel navigasi kiri, pilih Instances.

  3. Pada halaman Instances, klik Create ACR EE. Jika instans sudah dibuat, lewati langkah ini.

    Penting

    Anda hanya dapat mengunggah custom image ke instans Standard Edition atau Premium Edition dari ACR Enterprise Edition.

  4. Pada halaman Instances, temukan instans edisi enterprise target dan klik Manage untuk membuka halaman ikhtisar instans.

  5. Di panel navigasi kiri, pilih Repository > Repositories.

    Pada halaman Repository > Repositories, klik Create Repository. Di kotak dialog Create Repository, masukkan informasi berikut lalu klik Next.

    Parameter

    Wajib

    Deskripsi

    Region

    Ya

    Wilayah instans saat ini terisi secara otomatis.

    Namespace

    Ya

    Tentukan namespace untuk repository image. Pengaturan ini tidak dapat diubah nanti.

    • Kami menyarankan Anda membuat namespace yang sesuai dengan perusahaan, organisasi, atau pengguna individu, misalnya aliyun.

    • Kami tidak menyarankan Anda membuat namespace yang sesuai dengan modul atau sistem, misalnya tomcat atau centos.

    Repository Name

    Ya

    Nama harus terdiri dari 2 hingga 120 karakter dan dapat berisi huruf kecil, angka, serta pemisah berikut: garis bawah (_), tanda hubung (-), titik (.), dan garis miring (/). Nama tidak boleh diawali atau diakhiri dengan pemisah.

    Repository Type

    Tidak

    • Public: Untuk melakukan pull image publik, Anda harus login ke instans Enterprise Edition. Jika ingin mengizinkan pull anonim, aktifkan pengaturan pull anonim publik untuk instans tersebut.

    • Melakukan pull image privat dari Enterprise Edition mengharuskan login ke instans Enterprise Edition dengan izin pull.

    • Default-nya adalah privat.

    Tags

    Tidak

    After selected, all tags other than the latest in the repository cannot be overwritten, ensuring the consistency of the container images.

    Accelerated Image

    Tidak

    After selected, all images in the repository will automatically generate the accelerated images with "_accelerated" suffix

    • Full Mode: Full mode provides a significant acceleration effect. The size of an accelerated image is approximately 130% the size of the original image. The system requires approximately 25 seconds to generate a 1 GB-sized accelerated image. If an accelerated image layer has been generated for an image layer, the system does not generate an accelerated image layer again for the image layer.

    • Index-only Mode (Public Preview): Mode ini memberikan sekitar 70% dari efek akselerasi mode full. Ukuran accelerated image sekitar 3% dari ukuran image asli. Diperlukan waktu sekitar 3 detik untuk menghasilkan accelerated image berukuran 1 GB. Layer yang sudah diindeks tidak akan diindeks ulang.

    Summary

    Ya

    Max. 100 characters

    Description

    Tidak

    Supports Markdown Format

  6. Konfigurasikan sumber kode:

    Untuk Code Source, pilih Local Repository lalu klik Create Repository.

    Untuk informasi selengkapnya, lihat Menggunakan instans Enterprise Edition untuk membangun image.

  7. Push custom image ke instans ACR dalam akun yang sama.

    1. Pada halaman Repository Repositories, klik Manage pada kolom Actions dari repository target.

    2. Di panel navigasi kiri, pilih Details.

      Ikuti petunjuk di bagian Instructions on Images di bagian bawah halaman Details untuk melakukan push custom image dari lingkungan Docker Anda ke repository image Container Registry.

    3. (Opsional) Jika mesin berada dalam VPC, lakukan langkah-langkah berikut:

      1. Konfigurasikan kontrol akses untuk VPC agar dapat terhubung ke instans Enterprise Edition. Untuk informasi selengkapnya, lihat Mengonfigurasi akses melalui VPC.

      2. Saat bekerja dengan instans ACR Enterprise Edition di lingkungan Docker, tambahkan vpc ke nama domain. Misalnya, ubah acr-test-registry.cn-wulanchabu.cr.aliyuncs.com menjadi acr-test-registry-vpc.cn-wulanchabu.cr.aliyuncs.com.

        $ docker login --username=***@test.aliyunid.com acr-test-registry.cn-wulanchabu.cr.aliyuncs.com
      Catatan

      Jika terjadi error saat login ke instans, periksa apakah akses jaringan publik telah diaktifkan untuk repository tersebut.

Langkah 5: Tambahkan image ke MaxCompute

Hubungkan image ACR yang ada dengan MaxCompute untuk mengelola image pengembangan secara terpusat.

  1. Login ke konsol MaxCompute dan pilih wilayah di pojok kiri atas.

  2. Di panel navigasi kiri, pilih Manage Configurations > Images.

  3. Pada halaman Images, klik tab Custom Image.

  4. Pada tab Custom Image, klik Create Image. Di kotak dialog Add Image, konfigurasikan parameter berikut:

    Catatan

    Saat pertama kali membuat image, kotak dialog MaxCompute Service-linked Role akan muncul. Klik OK. Sistem secara otomatis membuat service-linked role untuk mengakses sumber daya ACR.

    Parameter

    Deskripsi

    Image Name

    Wajib. Nama gambar kustom. The image name must start with a lowercase letter, and can contain only lowercase letters, digits, hyphens (-), and underscores (_).

    Nama ini digunakan untuk mereferensikan image dalam MaxCompute SQL, PyODPS, dan MaxFrame.

    Image Type

    Wajib. Jenis image ACR. Hanya image ACR Enterprise Edition yang didukung.

    Enterprise Edition Image Instance

    Wajib. Pilih instans Enterprise Edition yang telah Anda buat di ACR.

    Image Namespace

    Wajib. Pilih namespace image yang telah Anda buat di ACR.

    Image Repository

    Wajib. Pilih repository image yang telah Anda buat di ACR.

    Image Version

    Wajib. Pilih versi image yang telah Anda unggah ke ACR.

    Image Description

    Wajib. Tambahkan deskripsi untuk image.

    Klik OK. Custom image baru akan muncul dalam daftar custom image.

Langkah 6: Gunakan image

Custom image dapat direferensikan dalam UDF MaxCompute SQL, PyODPS, dan MaxFrame.

Penting

Setiap pekerjaan hanya dapat menentukan satu image. Menentukan lebih dari satu image dapat menyebabkan konflik.

  • Untuk UDF, gunakan flag level session untuk menentukan image dan versi Python. Contoh:

    set odps.sql.python.version=cp37;
    set odps.session.image = <image_name>;
  • Untuk PyODPS, gunakan parameter image dari metode execute atau persist untuk menentukan image. Contoh:

    Catatan

    Untuk mereferensikan image di PyODPS, Anda harus meningkatkan versi PyODPS ke V0.11.5 atau yang lebih baru.

    image='<image_name>'
  • Untuk MaxFrame, gunakan konfigurasi berikut untuk menentukan image bagi pekerjaan:

    config.options.sql.settings = {
        "odps.session.image": "<image_name>"
    }