Files
babashka-pod-docker/dev/user.clj
Jim Clark 5df70f8d7f Support Index cli (#2)
* Add sbom support from index-cli

* Drop error channel

* return value is treated as an Invoke Op

* Add the index-cli-plugin

* Fix sample again

* Build platforms in multi-arch Docker build

* change go.sh for /bin/sh env in alpine

* Add workflow
2023-01-17 20:28:17 -08:00

27 lines
889 B
Clojure

(ns user
(:require [babashka.pods :as pods]
[clojure.edn :as edn]))
(pods/load-pod 'atomisthq/tools.docker "0.1.0")
(require '[pod.atomisthq.docker :as docker])
;; parse image names using github.com/docker/distribution
;; turns golang structs into clojure maps
(docker/parse-image-name "gcr.io/whatever:tag")
;; automatically turns golang errors into Exceptions
(try
(docker/parse-image-name "gcr.io/whatever/:tag")
(catch Exception e
;; invalid reference format
(println (.getMessage e))))
;; parse dockerfiles using github.com/moby/buildkit
;; returns the Result struct transformed to a clojure map
(docker/parse-dockerfile "FROM \\\n gcr.io/whatever:tag\nCMD [\"run\"]")
;; run sbom generation on local image
(docker/sbom "vonwig/clojure-base:jdk17" (fn [event] (println event)))
(docker/hashes "vonwig/malware1:latest" (fn [event] (println event)))