 (defn image-variants [base-images distros build-tools]
   (->> (combo/cartesian-product base-images distros build-tools)
        (map variant-map)
+       (remove #(= ::s/invalid (s/conform ::variant %)))
        set))
 
 (defn build-images [variants]

  (:require
   [clojure.java.shell :refer [sh]]
   [clojure.math.combinatorics :as combo]
   [clojure.string :as str]
   [docker-clojure.dockerfile :as df]))

(def base-images
  #{"openjdk:8" "openjdk:11"})

    (str/join "-" (remove nil? [jdk-label build-tool build-tool-version
                                distro-label]))))

(s/def ::variant
  (s/keys :req-un [::base-image ::distro ::build-tool ::build-tool-version
                   ::maintainer ::docker-tag]))

(defn variant-map [[base-image distro build-tool]]
  (let [base {:base-image base-image
              :distro     distro
