Docker login if exec might pull image
The `app exec` and `accessory exec` commands will run `docker run` if they are not set to reuse existing containers. This might need to pull an image so let's make sure we are logged in before running the command. Fixes: https://github.com/basecamp/kamal/issues/1163
This commit is contained in:
@@ -152,6 +152,7 @@ class Kamal::Cli::Accessory < Kamal::Cli::Base
|
||||
|
||||
when options[:interactive]
|
||||
say "Launching interactive command via SSH from new container...", :magenta
|
||||
on(accessory.hosts.first) { execute *KAMAL.registry.login }
|
||||
run_locally { exec accessory.execute_in_new_container_over_ssh(cmd) }
|
||||
|
||||
when options[:reuse]
|
||||
@@ -164,6 +165,7 @@ class Kamal::Cli::Accessory < Kamal::Cli::Base
|
||||
else
|
||||
say "Launching command from new container...", :magenta
|
||||
on(hosts) do |host|
|
||||
execute *KAMAL.registry.login
|
||||
execute *KAMAL.auditor.record("Executed cmd '#{cmd}' on #{name} accessory"), verbosity: :debug
|
||||
puts_by_host host, capture_with_info(*accessory.execute_in_new_container(cmd))
|
||||
end
|
||||
|
||||
@@ -127,6 +127,7 @@ class Kamal::Cli::App < Kamal::Cli::Base
|
||||
say "Get most recent version available as an image...", :magenta unless options[:version]
|
||||
using_version(version_or_latest) do |version|
|
||||
say "Launching interactive command with version #{version} via SSH from new container on #{KAMAL.primary_host}...", :magenta
|
||||
on(KAMAL.primary_host) { execute *KAMAL.registry.login }
|
||||
run_locally do
|
||||
exec KAMAL.app(role: KAMAL.primary_role, host: KAMAL.primary_host).execute_in_new_container_over_ssh(cmd, env: env)
|
||||
end
|
||||
@@ -152,6 +153,8 @@ class Kamal::Cli::App < Kamal::Cli::Base
|
||||
using_version(version_or_latest) do |version|
|
||||
say "Launching command with version #{version} from new container...", :magenta
|
||||
on(KAMAL.app_hosts) do |host|
|
||||
execute *KAMAL.registry.login
|
||||
|
||||
roles = KAMAL.roles_on(host)
|
||||
|
||||
roles.each do |role|
|
||||
|
||||
Reference in New Issue
Block a user