Merge pull request #507 from leonvogt/introduce-absolute-accessories-paths
Add option to set an absolute directory path
This commit is contained in:
@@ -70,8 +70,8 @@ class Kamal::Configuration::Accessory
|
||||
|
||||
def directories
|
||||
specifics["directories"]&.to_h do |host_to_container_mapping|
|
||||
host_relative_path, container_path = host_to_container_mapping.split(":")
|
||||
[ expand_host_path(host_relative_path), container_path ]
|
||||
host_path, container_path = host_to_container_mapping.split(":")
|
||||
[ expand_host_path(host_path), container_path ]
|
||||
end || {}
|
||||
end
|
||||
|
||||
@@ -138,13 +138,17 @@ class Kamal::Configuration::Accessory
|
||||
|
||||
def remote_directories_as_volumes
|
||||
specifics["directories"]&.collect do |host_to_container_mapping|
|
||||
host_relative_path, container_path = host_to_container_mapping.split(":")
|
||||
[ expand_host_path(host_relative_path), container_path ].join(":")
|
||||
host_path, container_path = host_to_container_mapping.split(":")
|
||||
[ expand_host_path(host_path), container_path ].join(":")
|
||||
end || []
|
||||
end
|
||||
|
||||
def expand_host_path(host_relative_path)
|
||||
"#{service_data_directory}/#{host_relative_path}"
|
||||
def expand_host_path(host_path)
|
||||
absolute_path?(host_path) ? host_path : "#{service_data_directory}/#{host_path}"
|
||||
end
|
||||
|
||||
def absolute_path?(path)
|
||||
Pathname.new(path).absolute?
|
||||
end
|
||||
|
||||
def service_data_directory
|
||||
|
||||
@@ -149,10 +149,16 @@ class ConfigurationAccessoryTest < ActiveSupport::TestCase
|
||||
assert_match "%", @config.accessory(:mysql).files.keys[2].read
|
||||
end
|
||||
|
||||
test "directories" do
|
||||
test "directory with a relative path" do
|
||||
@deploy[:accessories]["mysql"]["directories"] = [ "data:/var/lib/mysql" ]
|
||||
assert_equal({"$PWD/app-mysql/data"=>"/var/lib/mysql"}, @config.accessory(:mysql).directories)
|
||||
end
|
||||
|
||||
test "directory with an absolute path" do
|
||||
@deploy[:accessories]["mysql"]["directories"] = [ "/var/data/mysql:/var/lib/mysql" ]
|
||||
assert_equal({"/var/data/mysql"=>"/var/lib/mysql"}, @config.accessory(:mysql).directories)
|
||||
end
|
||||
|
||||
test "options" do
|
||||
assert_equal ["--cpus", "\"4\"", "--memory", "\"2GB\""], @config.accessory(:redis).option_args
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user