Cara Menstandarkan Pengiriman Perangkat Lunak Dengan Artefak OCI, ORAS, dan Docker Hub

  • Post author:
  • Post category:Tutorial

Docker Hub adalah registri paling terkenal untuk mendistribusikan dan berbagi gambar kontainer. Docker Hub dan pendaftar yang sesuai dengan OCI lainnya sekarang dapat melakukan lebih dari sekadar image container. Proyek ORAS (OCI Registry As Storage) mengubah registri menjadi penyimpanan artefak umum, yang mampu menerbitkan aset apa pun yang relevan dengan aplikasi Anda.

Dalam artikel ini, Anda akan mempelajari apa itu ORAS, tantangan yang dipecahkannya, dan cara mulai menggunakannya dengan Docker Hub.

Docker Hub vs OCI Registries

Pertama, mari kita perjelas satu detail: ekosistem kontainer lebih dari sekadar Docker. Alat dan proses yang dipelopori Docker telah distandarisasi oleh OCI. Docker kini merupakan salah satu implementasi dari spesifikasi OCI, di samping sistem container lain yang kompatibel seperti Podman dan Kubernetes.

Docker Hub adalah platform yang kompatibel dengan Registri OCI untuk mengirim image container. Alat penampung OCI dapat menggunakan konten dari Docker Hub dan pendaftar lainnya melalui perintah seperti docker pull dan docker push. Meskipun sebelumnya hanya bekerja dengan gambar kontainer, sekarang Anda dapat menggunakan mekanisme yang sama untuk mendistribusikan komponen aplikasi Anda yang lain.

Mengapa Artefak Generik Penting

Fungsi ini sedang dikembangkan di bawah panji ORAS. Ini merombak pendaftar sebagai “penyimpanan artefak generik” yang dapat Anda gunakan untuk berinteraksi dengan menggunakan alur kerja push/pull yang sudah dikenal.

Artefak adalah segala sesuatu yang mungkin diperlukan pengguna agar berhasil menjalankan perangkat lunak Anda. Ini bisa berupa gambar kontainer, atau jenis aset lain yang masuk akal untuk proyek Anda:

Bagan helmBinari dan paket penginstal yang telah dikompilasiSBOMsKonfigurasi kebijakan keamanan yang direkomendasikan, seperti aturan OPARilis tanda tangan, sertifikat, dan metadata

Aset vital ini seringkali sulit ditemukan oleh pengguna. Mereka cenderung tersebar di berbagai platform kontrol sumber, pengelola paket, dan unduhan situs web langsung. Dengan ORAS, Anda dapat menyimpan semuanya ke dalam satu registri terpusat, lalu mengizinkan pengguna mengambil konten menggunakan satu set alat dan kredensial. Melihat SBOM untuk rilis v1.1.0 Anda semudah menarik contoh.com/my-app/sbom:v1.1.0, misalnya.

Apakah ORAS merupakan Breaking Change untuk Gambar Kontainer?

ORAS tidak merusak registri penampung yang ada fitur. Anda dapat terus menjalankan perintah seperti docker push my-image:latest untuk memindahkan gambar Anda. Nbsp

Namun, ada perubahan signifikan pada penyimpanan konten di belakang layar. ORAS menghapus asumsi historis bahwa semua konten registri adalah gambar. Untuk mendukung artefak, pendaftar harus melacak jenis setiap unggahan yang diselesaikan. Berbagai jenis artefak disebut “tipe media” dalam ORAS.

Proyek komunitas populer dapat mendaftarkan jenis media mereka sendiri untuk mengidentifikasi klasifikasi artefak yang umum digunakan, seperti diagram Helm. Hal ini memungkinkan penyedia registri menampilkan informasi yang relevan tentang artefak yang telah Anda simpan.

Jenis media gambar kontainer secara otomatis digunakan saat Anda mendorong dari alat yang sudah ada seperti docker push. Jenis “tidak dikenal” default diterapkan saat Anda mengunggah langsung dari ORAS CLI, kecuali jika Anda menentukan jenis terdaftar.

Menginstal ORAS CLI

Anda memerlukan ORAS CLI untuk mendorong dan menarik artefak dengan jenis arbitrer. Anda dapat mengunduh versi terbaru dari halaman rilis proyek GitHub. Hanya sistem macOS dan Linux yang saat ini didukung.

Ekstrak arsip yang diunduh, lalu salin biner oras ke lokasi yang ada di jalur Anda:

$ tar -zxf oras_0.16.0_*.tar.gz -C oras-install/ $ mv oras -install/oras /usr/local/bin/ $ rm -rf oras_0.16.0_*.tar.gz oras-install/

Periksa apakah biner Anda berfungsi dengan menjalankan perintah versi oras:

$ oras versi 0.16.0

Sekarang Anda siap untuk mulai menggunakan ORAS.

Menggunakan ORAS Dengan Docker Hub

ORAS hanya kompatibel dengan pendaftar yang telah mengimplementasikan dukungan untuk spesifikasi Artefak OCI. Daftar ini sekarang menampilkan sebagian besar vendor utama, termasuk Amazon ECR, Azure, Google, dan GitHub, serta instans yang dihosting sendiri yang diterapkan menggunakan distribusi CNCF. Kami akan menggunakan Docker Hub untuk artikel ini karena ini adalah solusi registri paling populer. Itu menambahkan dukungan penuh untuk Artefak OCI pada November 2022.

Login ke Registri Anda

ORAS secara otomatis menggunakan kembali kredensial registri yang sebelumnya Anda tambahkan ke file ~/.docker/config.json Anda. Jika Anda perlu login ke Docker Hub, Anda dapat menjalankan login docker atau login oras untuk melakukannya:

$ oras login -u username -p password_or_personal_access_token $ docker login -u username -p password_or_personal_access_token

Selanjutnya buat file sederhana untuk diunggah ke registri . Ingat tidak ada batasan pada jenis aset yang Anda dorong. Contoh ini adalah file JSON yang dibuat-buat yang menjelaskan status proyek, tetapi Anda dapat mengunggah apa pun yang berguna bagi pengguna atau pengembang Anda.

$ echo `{“app”: “oras-demo”, “version”: “1.1 .0”}` > artifact.json

Sekarang Anda siap untuk mendorong file Anda dengan ORAS CLI.

Push Your Artifact

Jalankan perintah berikut untuk mendorong artefak Anda, setelah mengganti dengan nama pengguna Docker Hub Anda yang sebenarnya:

$ oras push docker.io/ /oras-demo:1.1.0 artifact.json:application/json –artifact-type application/vnd.unknown.config.v1+json Mengunggah 7ac68d8d2a12 artifact.json Mengunggah 7ac68d8d2a12 artifact.json Mendorong docker.io/ilmiont/ oras-demo:1.1.0 Intisari: sha256:41abfed0ab43a24933c5eafe3c363418264a59eee527821a39fe7c0abf25570b

Ada beberapa detail penting dalam perintah ini:

Argumen pertama mendefinisikan registri untuk mendorong dan tag untuk menetapkan ke artefak. Ini mirip dengan mendorong tag gambar wadah. Tidak seperti docker CLI, ORAS mengharuskan Anda menentukan URL registri (docker.io untuk Docker Hub). ORAS adalah alat generik yang tidak dapat membuat asumsi tentang apa atau di mana Anda mendorong. Argumen kedua menentukan jalur ke file yang Anda unggah dalam nama file: format tipe konten. Karena file contoh adalah JSON, tipe konten aplikasi/json dipilih. Argumen ketiga menentukan tipe artefak ORAS (tipe media) untuk ditetapkan ke artefak Anda. Anda harus menggunakan jenis media standar jika Anda mengunggah jenis artefak terdaftar, seperti bagan Helm, tetapi default “tidak dikenal” sesuai untuk demo ini. Kemajuan unggahan ditampilkan di terminal Anda, serupa dengan dorongan buruh pelabuhan biasa . Coba jalankan perintah oras repo tags untuk mengonfirmasi push selesai:

$ oras repo tags docker.io//oras-demo 1.1.0Mengelola Artefak Di UI Docker Hub

Artefak Anda juga akan muncul di situs web Docker Hub. Dalam daftar Repositori, Anda akan melihat Berisi: Lainnya untuk menunjukkan bahwa repositori menyimpan artefak generik. Repositori gambar kontainer diberi label sebagai Berisi: Image.

Pilih repositori untuk melihat detailnya, menambahkan deskripsi, dan melihat semua tag yang tersedia. Ini mirip dengan bekerja dengan gambar kontainer.

Menarik Artefak Anda

Dengan artefak Anda tersedia di registri, Anda sekarang dapat beralih ke komputer lain dan mengulangi langkah-langkah untuk menginstal ORAS CLI dan masuk ke akun Docker Hub Anda. Setelah Anda mengautentikasi, gunakan perintah oras pull untuk mengambil artefak Anda:

$ oras pull docker.io//oras-demo:1.1.0 Mengunduh 7ac68d8d2a12 artifact.json Mengunduh 7ac68d8d2a12 artifact.json Menarik docker.io/ilmiont/oras -demo:1.1.0 Intisari: sha256:41abfed0ab43a24933c5eafe3c363418264a59eee527821a39fe7c0abf25570b

File dalam artefak akan disimpan ke direktori kerja Anda:

$ ls artifact.json $ cat artifact.json {“app”: “demo-oras”, “version”: ” 1.1.0″}

Anda telah berhasil menggunakan ORAS untuk mendistribusikan artefak aplikasi Anda, menggunakan infrastruktur yang ada yang tersedia dari penyedia registry container Anda.

Summary

ORAS mengubah registry image container menjadi platform distribusi generik. Anda dapat mendorong artefak apa pun yang relevan dengan aplikasi Anda dan pengguna dapat mengambilnya menggunakan satu mekanisme yang konsisten. Ini menghindari keharusan mempertahankan, memublikasikan ke, dan beralih di antara beberapa saluran pengiriman. Dukungan

ORAS juga ditambahkan ke alat ekosistem populer. Helm memungkinkan Anda mendorong grafik secara langsung ke registri ORAS menggunakan perintah helm push-nya, misalnya. Ini menghindari keharusan mengekspor bagan secara manual sehingga Anda dapat mendorongnya dengan oras push. Ini juga menangani pengaturan jenis media ORAS yang benar untuk Anda. Anda dapat mengharapkan lebih banyak alat untuk mulai mengintegrasikan ORAS, memungkinkan Anda untuk mendorong semua jenis konten langsung ke registri terpusat Anda.

Disadur dari HowToGeek.com.