From 705cd1033e8af8cf1b1702eb32b2358289d6a0b7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 7 Jan 2023 21:31:13 +0100 Subject: [PATCH] Registry login from config credentials --- lib/mrsk/commands/registry.rb | 15 +++++++++------ lib/tasks/mrsk/registry.rake | 12 ++++-------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/lib/mrsk/commands/registry.rb b/lib/mrsk/commands/registry.rb index d7175dc9..53824645 100644 --- a/lib/mrsk/commands/registry.rb +++ b/lib/mrsk/commands/registry.rb @@ -1,10 +1,13 @@ class Mrsk::Commands::Registry < Mrsk::Commands::Base def login - if (user = ENV["DOCKER_USER"]).present? && (password = ENV["DOCKER_PASSWORD"]).present? - # FIXME: Find a way to hide PW so it's not shown on terminal - "docker login -u #{user} -p #{password}" - else - raise ArgumentError, "Missing DOCKER_USER or DOCKER_PASSWORD in ENV" - end + ensure_credentials_present + "docker login #{config.registry["server"]} -u #{config.registry["username"]} -p #{config.registry["password"]}" end + + private + def ensure_credentials_present + unless config.registry && config.registry["username"].present? && config.registry["password"].present? + raise ArgumentError, "You must configure registry/username and registry/password" + end + end end diff --git a/lib/tasks/mrsk/registry.rake b/lib/tasks/mrsk/registry.rake index de940369..0d7c8861 100644 --- a/lib/tasks/mrsk/registry.rake +++ b/lib/tasks/mrsk/registry.rake @@ -1,17 +1,13 @@ require_relative "setup" -registry = Mrsk::Commands::Registry.new +registry = Mrsk::Commands::Registry.new(MRSK_CONFIG) namespace :mrsk do namespace :registry do - desc "Login to the registry using ENV['DOCKER_USER'] and ENV['DOCKER_PASSWORD']" + desc "Login to the registry locally and remotely" task :login do - if ENV["DOCKER_USER"].present? && ENV["DOCKER_PASSWORD"].present? - run_locally { execute registry.login } - on(MRSK_CONFIG.servers) { execute registry.login } - else - puts "Skipping login due to missing ENV['DOCKER_USER'] and ENV['DOCKER_PASSWORD']" - end + run_locally { execute registry.login } + on(MRSK_CONFIG.servers) { execute registry.login } end end end