Config the number of containers to keep

By default we keep 5 containers around for rollback. The containers
don't take much space, but the images for them can.

Make the number of containers to retain configurable, either in the
config with the `retain_containers` setting on the command line
with the `--retain` option.
This commit is contained in:
Donal McBreen
2024-01-15 14:17:43 +00:00
parent bcfd0ca88a
commit 6892abb4be
6 changed files with 42 additions and 7 deletions

View File

@@ -127,6 +127,10 @@ class Kamal::Configuration
raw_config.require_destination
end
def retain_containers
raw_config.retain_containers || 5
end
def volume_args
if raw_config.volumes.present?
@@ -218,7 +222,7 @@ class Kamal::Configuration
def valid?
ensure_destination_if_required && ensure_required_keys_present && ensure_valid_kamal_version
ensure_destination_if_required && ensure_required_keys_present && ensure_valid_kamal_version && ensure_retain_containers_valid
end
def to_h
@@ -291,6 +295,12 @@ class Kamal::Configuration
true
end
def ensure_retain_containers_valid
raise ArgumentError, "Must retain at least 1 container" if retain_containers < 1
true
end
def role_names
raw_config.servers.is_a?(Array) ? [ "web" ] : raw_config.servers.keys.sort