Jika Anda menggunakan penampung kustom di Dataflow, penampung harus cocok dengan arsitektur VM pekerja. Dokumen ini menjelaskan cara membuat penampung multi-arsitektur yang kompatibel dengan VM x86 dan Arm.
Anda dapat menggunakan Docker CLI atau Cloud Build untuk mem-build image container.
Menggunakan Docker untuk mem-build image
Buat Dockerfile. Gunakan petunjuk
FROM
untuk menentukan image dasar multi-arsitektur.FROM apache/beam_python3.10_sdk:2.50.0 # Make your customizations here, for example: ENV FOO=/bar COPY path/to/myfile ./
Instal alat Buildx. Untuk memeriksa apakah alat tersebut telah diinstal, jalankan perintah berikut:
docker buildx version
Jalankan perintah berikut untuk membuat instance builder yang menggunakan driver
docker-container
. Driver ini diperlukan untuk mem-build image multi-arsitektur.docker buildx create --driver=docker-container --use
Flag
--use
menetapkan instance builder baru sebagai builder saat ini.Jalankan perintah berikut untuk mengonfigurasi Docker guna mengautentikasi permintaan ke Artifact Registry.
gcloud auth configure-docker REGION-docker.pkg.dev
Ganti REGION dengan region repositori Artifact Registry.
Jalankan perintah berikut untuk mem-build dan mengirim image container ke Artifact Registry:
docker buildx build \ --platform=linux/amd64,linux/arm64 \ -t REGISTRY/IMAGE:TAG \ --push .
Ganti kode berikut:
- REGISTRY: repositori Docker
- IMAGE: nama image
- TAG: tag gambar
Menggunakan Cloud Build untuk mem-build image
Buat Dockerfile. Gunakan petunjuk
FROM
untuk menentukan image dasar multi-arsitektur.FROM apache/beam_python3.10_sdk:2.50.0 # Make your customizations here, for example: ENV FOO=/bar COPY path/to/myfile ./
Di direktori yang sama dengan Dockerfile, buat file bernama
docker_buildx.yaml
. Tempelkan teks berikut:steps: - name: 'docker' args: ['buildx', 'create', '--driver', 'docker-container', '--name', 'container', '--use'] - name: 'docker' args: ['buildx', 'build', '--platform', 'linux/amd64,linux/arm64', '-t', 'REGISTRY/IMAGE:TAG', '--push', '.']
Ganti kode berikut:
- REGISTRY: repositori Docker
- IMAGE: nama image
- TAG: tag gambar
Untuk mem-build dan mengirim image, jalankan perintah
gcloud builds submit
:gcloud builds submit --region=REGION --config docker_buildx.yaml
Ganti REGION dengan region layanan Cloud Build yang akan digunakan.
Untuk informasi selengkapnya, lihat Mem-build dan mengirim image Docker dengan Cloud Build.
Memverifikasi image container
Buka halaman Repositories di konsol Google Cloud.
Klik repositori dengan image container.
Klik gambar untuk melihat versinya.
Klik versi.
Klik Manifes.
Dalam file manifes, bagian
platform
harus memiliki entri untukarm64
danamd64
. Contoh:{ "schemaVersion": 2, "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "manifests": [ { "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "digest": "sha256:441d5438885049e2b388523a8cb5b77ea829c3c3f53326fb221fe185abd67f07", "size": 3074, "platform": { "architecture": "amd64", "os": "linux" } }, { "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "digest": "sha256:d3b98b0f8f3f555f5453c79b240bd2b862d4f52d853fe81bae55f01a663de29c", "size": 3073, "platform": { "architecture": "arm64", "os": "linux" } } ] }