Latihan 1: Container Registry — DevOps

Latihan 1 dari materi Container Registry di DevOps — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Isi function parseImageRef(ref) yang membongkar nama image jadi object { registry, namespace, name, tag }, dengan kunci persis dalam urutan itu.

Format nama: [REGISTRY/]NAMESPACE/NAME[:TAG].

  1. Potong ref di tiap /. Kalau ada lebih dari satu bagian dan bagian pertama berisi titik (.) atau titik dua (:), atau persis localhost, bagian itu registry. Kalau gak, registry = "docker.io".
  2. Bagian terakhir adalah nama plus tag. Bagian di antaranya adalah namespace; kalau gak ada, namespace = "library".
  3. Di bagian terakhir, yang setelah : adalah tag. Kalau gak ada :, tag = "latest".

Tiga baris console.log di kode awal biarkan. Yang diuji adalah nilai kembalian, dibandingkan persis:

  1. parseImageRef("nginx") mengembalikan { registry: "docker.io", namespace: "library", name: "nginx", tag: "latest" }.
  2. parseImageRef("ghcr.io/me/app:v1") mengembalikan { registry: "ghcr.io", namespace: "me", name: "app", tag: "v1" }.
  3. parseImageRef("user/app:2.0") mengembalikan { registry: "docker.io", namespace: "user", name: "app", tag: "2.0" }.
  4. parseImageRef("ghcr.io/org/app") (tanpa tag) mengembalikan { registry: "ghcr.io", namespace: "org", name: "app", tag: "latest" }.
  5. parseImageRef("localhost/team/app") mengembalikan { registry: "localhost", namespace: "team", name: "app", tag: "latest" }: Docker menganggap localhost registry walau tanpa titik.

Hint