Move docker login into build command
We only need to run the docker login commands for pushing and pulling images. So let's move the logins into those commands. This ensures we are logged in when calling `kamal build` commands directly. Fixes: https://github.com/basecamp/kamal/issues/919
This commit is contained in:
@@ -15,6 +15,8 @@ class Kamal::Cli::Build < Kamal::Cli::Base
|
||||
cli = self
|
||||
|
||||
ensure_docker_installed
|
||||
login_to_registry_locally
|
||||
|
||||
run_hook "pre-build"
|
||||
|
||||
uncommitted_changes = Kamal::Git.uncommitted_changes
|
||||
@@ -61,6 +63,8 @@ class Kamal::Cli::Build < Kamal::Cli::Base
|
||||
|
||||
desc "pull", "Pull app image from registry onto servers"
|
||||
def pull
|
||||
login_to_registry_remotely
|
||||
|
||||
if (first_hosts = mirror_hosts).any?
|
||||
# Pull on a single host per mirror first to seed them
|
||||
say "Pulling image on #{first_hosts.join(", ")} to seed the #{"mirror".pluralize(first_hosts.count)}...", :magenta
|
||||
@@ -181,4 +185,16 @@ class Kamal::Cli::Build < Kamal::Cli::Base
|
||||
execute *KAMAL.builder.validate_image
|
||||
end
|
||||
end
|
||||
|
||||
def login_to_registry_locally
|
||||
run_locally do
|
||||
execute *KAMAL.registry.login
|
||||
end
|
||||
end
|
||||
|
||||
def login_to_registry_remotely
|
||||
on(KAMAL.hosts) do
|
||||
execute *KAMAL.registry.login
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -20,9 +20,6 @@ class Kamal::Cli::Main < Kamal::Cli::Base
|
||||
runtime = print_runtime do
|
||||
invoke_options = deploy_options
|
||||
|
||||
say "Log into image registry...", :magenta
|
||||
invoke "kamal:cli:registry:login", [], invoke_options.merge(skip_local: options[:skip_push])
|
||||
|
||||
if options[:skip_push]
|
||||
say "Pull app image...", :magenta
|
||||
invoke "kamal:cli:build:pull", [], invoke_options
|
||||
@@ -52,7 +49,7 @@ class Kamal::Cli::Main < Kamal::Cli::Base
|
||||
run_hook "post-deploy", secrets: true, runtime: runtime.round.to_s
|
||||
end
|
||||
|
||||
desc "redeploy", "Deploy app to servers without bootstrapping servers, starting kamal-proxy, pruning, and registry login"
|
||||
desc "redeploy", "Deploy app to servers without bootstrapping servers, starting kamal-proxy and pruning"
|
||||
option :skip_push, aliases: "-P", type: :boolean, default: false, desc: "Skip image build and push"
|
||||
def redeploy
|
||||
runtime = print_runtime do
|
||||
|
||||
Reference in New Issue
Block a user