Move all files on the host under a common directory
This will make running kamal remove simpler, we can just clean up that directory.
This commit is contained in:
@@ -101,7 +101,7 @@ module Kamal::Cli
|
||||
end
|
||||
|
||||
def acquire_lock
|
||||
ensure_run_and_locks_directory
|
||||
ensure_service_and_locks_directory
|
||||
|
||||
raise_if_locked do
|
||||
say "Acquiring the deploy lock...", :magenta
|
||||
@@ -174,9 +174,9 @@ module Kamal::Cli
|
||||
instance_variable_get("@_invocations").first
|
||||
end
|
||||
|
||||
def ensure_run_and_locks_directory
|
||||
def ensure_service_and_locks_directory
|
||||
on(KAMAL.hosts) do
|
||||
execute(*KAMAL.server.ensure_run_directory)
|
||||
execute(*KAMAL.server.ensure_service_directory)
|
||||
end
|
||||
|
||||
on(KAMAL.primary_host) do
|
||||
|
||||
@@ -12,7 +12,7 @@ class Kamal::Cli::Lock < Kamal::Cli::Base
|
||||
option :message, aliases: "-m", type: :string, desc: "A lock message", required: true
|
||||
def acquire
|
||||
message = options[:message]
|
||||
ensure_run_and_locks_directory
|
||||
ensure_service_and_locks_directory
|
||||
|
||||
raise_if_locked do
|
||||
on(KAMAL.primary_host) do
|
||||
|
||||
@@ -36,8 +36,6 @@ class Kamal::Cli::Server < Kamal::Cli::Base
|
||||
missing << host
|
||||
end
|
||||
end
|
||||
|
||||
execute(*KAMAL.server.ensure_run_directory)
|
||||
end
|
||||
|
||||
if missing.any?
|
||||
|
||||
@@ -3,18 +3,18 @@ module Kamal::Commands::App::Assets
|
||||
asset_container = "#{role.container_prefix}-assets"
|
||||
|
||||
combine \
|
||||
make_directory(role.asset_extracted_path),
|
||||
make_directory(role.asset_extracted_directory),
|
||||
[ *docker(:stop, "-t 1", asset_container, "2> /dev/null"), "|| true" ],
|
||||
docker(:run, "--name", asset_container, "--detach", "--rm", "--entrypoint", "sleep", config.absolute_image, "1000000"),
|
||||
docker(:cp, "-L", "#{asset_container}:#{role.asset_path}/.", role.asset_extracted_path),
|
||||
docker(:cp, "-L", "#{asset_container}:#{role.asset_path}/.", role.asset_extracted_directory),
|
||||
docker(:stop, "-t 1", asset_container),
|
||||
by: "&&"
|
||||
end
|
||||
|
||||
def sync_asset_volumes(old_version: nil)
|
||||
new_extracted_path, new_volume_path = role.asset_extracted_path(config.version), role.asset_volume.host_path
|
||||
new_extracted_path, new_volume_path = role.asset_extracted_directory(config.version), role.asset_volume.host_path
|
||||
if old_version.present?
|
||||
old_extracted_path, old_volume_path = role.asset_extracted_path(old_version), role.asset_volume(old_version).host_path
|
||||
old_extracted_path, old_volume_path = role.asset_extracted_directory(old_version), role.asset_volume(old_version).host_path
|
||||
end
|
||||
|
||||
commands = [ make_directory(new_volume_path), copy_contents(new_extracted_path, new_volume_path) ]
|
||||
@@ -29,8 +29,8 @@ module Kamal::Commands::App::Assets
|
||||
|
||||
def clean_up_assets
|
||||
chain \
|
||||
find_and_remove_older_siblings(role.asset_extracted_path),
|
||||
find_and_remove_older_siblings(role.asset_volume_path)
|
||||
find_and_remove_older_siblings(role.asset_extracted_directory),
|
||||
find_and_remove_older_siblings(role.asset_volume_directory)
|
||||
end
|
||||
|
||||
private
|
||||
@@ -39,7 +39,7 @@ module Kamal::Commands::App::Assets
|
||||
:find,
|
||||
Pathname.new(path).dirname.to_s,
|
||||
"-maxdepth 1",
|
||||
"-name", "'#{role.container_prefix}-*'",
|
||||
"-name", "'#{role.name}-*'",
|
||||
"!", "-name", Pathname.new(path).basename.to_s,
|
||||
"-exec rm -rf \"{}\" +"
|
||||
]
|
||||
|
||||
@@ -9,7 +9,7 @@ class Kamal::Commands::Auditor < Kamal::Commands::Base
|
||||
# Runs remotely
|
||||
def record(line, **details)
|
||||
combine \
|
||||
[ :mkdir, "-p", config.run_directory ],
|
||||
[ :mkdir, "-p", config.service_directory ],
|
||||
append(
|
||||
[ :echo, audit_tags(**details).except(:version, :service_version, :service).to_s, line ],
|
||||
audit_log_file
|
||||
@@ -22,9 +22,7 @@ class Kamal::Commands::Auditor < Kamal::Commands::Base
|
||||
|
||||
private
|
||||
def audit_log_file
|
||||
file = [ config.service, config.destination, "audit.log" ].compact.join("-")
|
||||
|
||||
File.join(config.run_directory, file)
|
||||
File.join config.service_directory, "audit.log"
|
||||
end
|
||||
|
||||
def audit_tags(**details)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class Kamal::Commands::Server < Kamal::Commands::Base
|
||||
def ensure_run_directory
|
||||
[ :mkdir, "-p", config.run_directory ]
|
||||
def ensure_service_directory
|
||||
[ :mkdir, "-p", config.service_directory ]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -194,6 +194,19 @@ class Kamal::Configuration
|
||||
".kamal"
|
||||
end
|
||||
|
||||
def service_directory
|
||||
File.join run_directory, "apps", [ service, destination ].compact.join("-")
|
||||
end
|
||||
|
||||
def env_directory
|
||||
File.join service_directory, "env"
|
||||
end
|
||||
|
||||
def assets_directory
|
||||
File.join service_directory, "assets"
|
||||
end
|
||||
|
||||
|
||||
def run_directory_as_docker_volume
|
||||
File.join "$(pwd)", run_directory
|
||||
end
|
||||
@@ -207,10 +220,6 @@ class Kamal::Configuration
|
||||
end
|
||||
|
||||
|
||||
def env_directory
|
||||
File.join(run_directory, "env")
|
||||
end
|
||||
|
||||
def env_tags
|
||||
@env_tags ||= if (tags = raw_config.env["tags"])
|
||||
tags.collect { |name, config| Env::Tag.new(name, config: config, secrets: secrets) }
|
||||
|
||||
@@ -63,7 +63,7 @@ class Kamal::Configuration::Accessory
|
||||
end
|
||||
|
||||
def secrets_path
|
||||
File.join(config.env_directory, "accessories", "#{service_name}.env")
|
||||
File.join(config.env_directory, "accessories", "#{name}.env")
|
||||
end
|
||||
|
||||
def files
|
||||
|
||||
@@ -84,7 +84,7 @@ class Kamal::Configuration::Role
|
||||
end
|
||||
|
||||
def secrets_path
|
||||
File.join(config.env_directory, "roles", "#{container_prefix}.env")
|
||||
File.join(config.env_directory, "roles", "#{name}.env")
|
||||
end
|
||||
|
||||
def asset_volume_args
|
||||
@@ -122,19 +122,19 @@ class Kamal::Configuration::Role
|
||||
asset_path.present? && running_proxy?
|
||||
end
|
||||
|
||||
def asset_volume(version = nil)
|
||||
def asset_volume(version = config.version)
|
||||
if assets?
|
||||
Kamal::Configuration::Volume.new \
|
||||
host_path: asset_volume_path(version), container_path: asset_path
|
||||
host_path: asset_volume_directory(version), container_path: asset_path
|
||||
end
|
||||
end
|
||||
|
||||
def asset_extracted_path(version = nil)
|
||||
File.join config.run_directory, "assets", "extracted", container_name(version)
|
||||
def asset_extracted_directory(version = config.version)
|
||||
File.join config.assets_directory, "extracted", [ name, version ].join("-")
|
||||
end
|
||||
|
||||
def asset_volume_path(version = nil)
|
||||
File.join config.run_directory, "assets", "volumes", container_name(version)
|
||||
def asset_volume_directory(version = config.version)
|
||||
File.join config.assets_directory, "volumes", [ name, version ].join("-")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
Reference in New Issue
Block a user