Call app:boot to rollback

The code in Mrsk::Cli::Main#rollback was very similar to
Mrsk::Cli::App#boot.

Modify Mrsk::Cli::App#boot so it can handle rollbacks by:
1. Only renaming running containers
2. Trying first to start then run the new container
This commit is contained in:
Donal McBreen
2023-05-05 09:50:27 +01:00
parent 059388cb02
commit ee25f200d7
6 changed files with 86 additions and 100 deletions

View File

@@ -6,6 +6,10 @@ class Mrsk::Commands::App < Mrsk::Commands::Base
@role = role
end
def start_or_run
combine start, run, by: "||"
end
def run
role = config.role(self.role)
@@ -91,8 +95,8 @@ class Mrsk::Commands::App < Mrsk::Commands::Base
docker :ps, "--quiet", *filter_args(status: :running), "--latest"
end
def container_id_for_version(version)
container_id_for(container_name: container_name(version))
def container_id_for_version(version, only_running: false)
container_id_for(container_name: container_name(version), only_running: only_running)
end
def current_running_version

View File

@@ -18,8 +18,8 @@ module Mrsk::Commands
end
end
def container_id_for(container_name:)
docker :container, :ls, "--all", "--filter", "name=^#{container_name}$", "--quiet"
def container_id_for(container_name:, only_running: false)
docker :container, :ls, *("--all" unless only_running), "--filter", "name=^#{container_name}$", "--quiet"
end
private