Boot stop all the old containers

This commit is contained in:
Jacopo
2023-04-06 11:26:15 +02:00
parent 4d47fbdf41
commit 8ae5331d97
4 changed files with 22 additions and 23 deletions

View File

@@ -8,13 +8,13 @@ class Mrsk::Cli::App < Mrsk::Cli::Base
cli = self
on(MRSK.hosts) do |host|
MRSK.hosts.each do |host|
roles = MRSK.roles_on(host)
roles.each do |role|
execute *MRSK.auditor(role: role).record("Booted app version #{version}"), verbosity: :debug
on(host) do
execute *MRSK.auditor(role: role).record("Booted app version #{version}"), verbosity: :debug
begin
if capture_with_info(*MRSK.app(role: role).container_id_for_version(version)).present?
tmp_version = "#{version}_#{SecureRandom.hex(8)}"
info "Renaming container #{version} to #{tmp_version} as already deployed on #{host}"
@@ -22,10 +22,16 @@ class Mrsk::Cli::App < Mrsk::Cli::Base
execute *MRSK.app(role: role).rename_container(version: version, new_version: tmp_version)
end
old_version = capture_with_info(*MRSK.app(role: role).current_running_version, raise_on_non_zero_exit: false).strip
execute *MRSK.app(role: role).run
sleep MRSK.config.readiness_delay
execute *MRSK.app(role: role).stop(version: old_version), raise_on_non_zero_exit: false if old_version.present?
end
old_versions = list_versions(host: host, role: role, only_old: true)
old_versions.each do |old_version|
on(host) do
info "Stopping old container with version #{old_version}"
execute *MRSK.app(role: role).stop(version: old_version), raise_on_non_zero_exit: false
end
end
end
end

View File

@@ -37,9 +37,6 @@ class Mrsk::Cli::Main < Mrsk::Cli::Base
say "Ensure app can pass healthcheck...", :magenta
invoke "mrsk:cli:healthcheck:perform", [], invoke_options
say "Stop old containers...", :magenta
invoke "mrsk:cli:app:stop", [], invoke_options.merge({ "only_old" => true })
invoke "mrsk:cli:app:boot", [], invoke_options
say "Prune old containers and images...", :magenta
@@ -68,9 +65,6 @@ class Mrsk::Cli::Main < Mrsk::Cli::Base
say "Ensure app can pass healthcheck...", :magenta
invoke "mrsk:cli:healthcheck:perform", [], invoke_options
say "Stop old containers...", :magenta
invoke "mrsk:cli:app:stop", [], invoke_options.merge({ "only_old" => true })
invoke "mrsk:cli:app:boot", [], invoke_options
end