All Products
Search
Document Center

MaxCompute:Custom images

Last Updated:Jul 18, 2026

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

Latar Belakang

Pengembangan MaxCompute SQL dan Python sering kali bergantung pada banyak paket pihak ketiga. Fitur manajemen custom image memungkinkan Anda menggunakan Docker image untuk membangun lingkungan pengembangan lengkap bagi pekerjaan MaxCompute SQL dan Python (PyODPS atau MaxFrame).

Prasyarat

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

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

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

  • Persyaratan arsitektur CPU: Bangun image Anda pada arsitektur CPU x86_64. Arsitektur CPU 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 pada base image telah dikonfigurasi sebelumnya untuk menggunakan sumber image CentOS 7 Alibaba Cloud.

  • Batasan direktori:

    Saat menggunakan alat seperti pip atau yum untuk menginstal paket, jangan menempatkan file pribadi di direktori /home/admin, /usr/local/lib, /usr/ali, /apsara. Saat sebuah kontainer dimulai, MaxCompute memasang lingkungan runtimenya ke direktori-direktori tersebut, sehingga menimpa konten aslinya.

Prosedur

Langkah 1: Instal Docker

  • Linux: Instal Docker dengan mengikuti dokumentasi resmi Docker.

  • macOS atau Windows:

    • Pengembang individu: Anda dapat menggunakan Docker Desktop.

    • Pengguna perusahaan tanpa lisensi Docker Desktop: Kami merekomendasikan menggunakan Rancher Desktop yang bersifat open-source.

Langkah 2: Berikan izin

Berikan akun atau pengguna izin baca untuk RAM roles, izin operasional untuk ACR, dan izin operasional untuk custom images MaxCompute sebagaimana dijelaskan dalam tabel berikut.

Kasus Penggunaan

Jenis Akun

Izin

Referensi

Izin baca untuk RAM roles

Akun Alibaba Cloud (disarankan)

Secara default, akun Alibaba Cloud memiliki izin baca untuk RAM roles. Tidak diperlukan otorisasi tambahan.

N/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 tambahan.

N/A

RAM user

Pengguna RAM memerlukan izin AliyunContainerRegistryReadOnlyAccess untuk mengoperasikan ACR.

Otorisasi pengguna RAM untuk ACR

Izin operasional custom image MaxCompute

Akun Alibaba Cloud (disarankan)

Secara default, akun Alibaba Cloud memiliki izin penuh untuk mengelola custom images di MaxCompute. Tidak diperlukan otorisasi tambahan.

N/A

RAM user

Untuk memungkinkan pengguna RAM mengelola custom images MaxCompute, berikan izin yang diperlukan sesuai kebutuhan bisnis Anda.

Langkah 3: Bangun custom image

Bangun custom image menggunakan Dockerfile berdasarkan base image MaxCompute.

  • URL base image CentOS MaxCompute adalah registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/base_image:latest. Base image ini menyediakan lingkungan dasar yang mencakup Python 3.7, Python 3.11, pip, dan yum.

  • Alamat base image Ubuntu MaxCompute adalah registry.cn-zhangjiakou.aliyuncs.com/maxcompute_image/ubuntu_20.04:latest.

  1. Buat Dockerfile berdasarkan base image MaxCompute. Jalankan perintah ini:

    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. Di halaman Instances, klik Create ACR EE. Jika Anda sudah membuat instans, langkah ini dapat dilewati.

    Penting

    Anda hanya dapat mengunggah custom images ke instans Edisi Standar atau Edisi Premium dari ACR Enterprise Edition.

  4. Di halaman Instances, temukan instans edisi enterprise yang dituju dan klik Manage untuk membuka halaman ikhtisar instans.

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

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

    Parameter

    Required

    Description

    Region

    Yes

    Wilayah instans saat ini diisi secara otomatis.

    Namespace

    Yes

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

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

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

    Repository Name

    Yes

    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 dimulai atau diakhiri dengan pemisah.

    Repository Type

    No

    • Public: Untuk menarik (pull) gambar publik, Anda harus login ke instans Edisi Perusahaan. Jika ingin mengizinkan pull anonim, aktifkan pengaturan pull anonim publik untuk instans tersebut.

    • Menarik gambar privat dari Edisi Perusahaan memerlukan login ke instans Edisi Perusahaan dengan izin pull.

    • Default-nya privat.

    Tags

    No

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

    Accelerated Image

    No

    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% efek akselerasi dibandingkan mode penuh. Gambar akselerasi berukuran sekitar 3% dari ukuran gambar aslinya. Diperlukan waktu sekitar 3 detik untuk menghasilkan gambar akselerasi berukuran 1 GB. Lapisan yang sudah diindeks tidak akan diindeks ulang.

    Summary

    Yes

    Max. 100 characters

    Description

    No

    Supports Markdown Format

  6. Konfigurasikan sumber kode:

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

    Untuk informasi lebih lanjut, lihat Gunakan instans Edisi Enterprise untuk membangun image.

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

    1. Di halaman Repository Repositories, klik Manage di kolom Actions repository yang dituju.

    2. Di panel navigasi kiri, pilih Details.

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

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

      1. Konfigurasikan kontrol akses VPC untuk menghubungkan ke instans Edisi Enterprise. Untuk informasi lebih lanjut, lihat Konfigurasikan akses melalui VPC.

      2. Saat bekerja dengan instans ACR Edisi Enterprise di lingkungan Docker, Anda harus menambahkan vpc ke nama domain. Misalnya, Anda harus mengubah 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 diaktifkan untuk repository tersebut.

Langkah 5: Tambahkan image ke MaxCompute

Asosiasikan image ACR yang sudah ada dengan MaxCompute untuk mengelola image pengembangan Anda secara terpusat.

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

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

  3. Di halaman Images, klik tab Custom Image.

  4. Di 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 akan secara otomatis membuat peran terkait layanan 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 Edisi Enterprise 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 tersebut.

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

Langkah 6: Menggunakan gambar

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

Penting

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

  • Untuk UDF, gunakan flag tingkat 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 pada metode execute atau persist untuk menentukan image. Contoh:

    Catatan

    Untuk mereferensikan image di PyODPS, Anda harus melakukan upgrade 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>"
    }