Hmm, trying to authenticate to a private registry with clj-docker-client, but didn't quite yet succeed
the api docs (https://docs.docker.com/engine/api/v1.40/#section/Authentication) mention a X-Registry-Auth
header, but didn't find out how to include it in :ImageCreate
operation
(defn- encode-base64
[input]
(.encodeToString (java.util.Base64/getEncoder) (.getBytes input)))
(def ^:private registry-auth
(encode-base64
(json/write-str
{:username "_json_key",
:password (json/write-str (edn/read-string (slurp "auth.edn"))),
:email "any@valid.email",
:serveraddress "<https://us.gcr.io>"})))
(d/invoke images
{:op :ImageCreate,
:params {:fromImage image-name,
:X-Registry-Auth registry-auth}}))
there's also /auth
endpoint, posting to it seems to make a login to my private registry, but the response gives an empty IdentityToken
(req/fetch {:conn (req/connect* {:uri "unix:///var/run/docker.sock"})
:url "/v1.40/auth"
:method :post
:body {:username "reader"
:password "bar"
:serveraddress "localhost:5000"}})
"{\"IdentityToken\":\"\",\"Status\":\"Login Succeeded\"}\n"
ah, I'll try that!
🙂
oh man, it worked, had used encode, instead of encodeToString, just a minute ago 🤦
thank you! 🙂
yw!