#142 Allow to customize container options in accessories

This commit is contained in:
Javier Aranda
2023-03-23 23:56:59 +01:00
parent e2d10ec5a9
commit 5d5d58a4ec
4 changed files with 24 additions and 3 deletions

View File

@@ -500,6 +500,9 @@ accessories:
- MYSQL_ROOT_PASSWORD
volumes:
- /var/lib/mysql:/var/lib/mysql
options:
cpus: 4
memory: "2GB"
redis:
image: redis:latest
host: 1.1.1.4

View File

@@ -1,6 +1,7 @@
class Mrsk::Commands::Accessory < Mrsk::Commands::Base
attr_reader :accessory_config
delegate :service_name, :image, :host, :port, :files, :directories, :publish_args, :env_args, :volume_args, :label_args, to: :accessory_config
delegate :service_name, :image, :host, :port, :files, :directories, :publish_args, :env_args, :volume_args,
:label_args, :option_args, to: :accessory_config
def initialize(config, name:)
super(config)
@@ -17,6 +18,7 @@ class Mrsk::Commands::Accessory < Mrsk::Commands::Base
*env_args,
*volume_args,
*label_args,
*option_args,
image
end

View File

@@ -1,5 +1,5 @@
class Mrsk::Configuration::Accessory
delegate :argumentize, :argumentize_env_with_secrets, to: Mrsk::Utils
delegate :argumentize, :argumentize_env_with_secrets, :optionize, to: Mrsk::Utils
attr_accessor :name, :specifics
@@ -67,6 +67,14 @@ class Mrsk::Configuration::Accessory
argumentize "--volume", volumes
end
def option_args
if args = specifics["options"]
optionize args
else
[]
end
end
private
attr_accessor :config

View File

@@ -39,7 +39,11 @@ class ConfigurationAccessoryTest < ActiveSupport::TestCase
},
"volumes" => [
"/var/lib/redis:/data"
]
],
"options" => {
"cpus" => 4,
"memory" => "2GB"
}
}
}
}
@@ -104,4 +108,8 @@ class ConfigurationAccessoryTest < ActiveSupport::TestCase
test "directories" do
assert_equal({"$PWD/app-mysql/data"=>"/var/lib/mysql"}, @config.accessory(:mysql).directories)
end
test "options" do
assert_equal ["--cpus", "\"4\"", "--memory", "\"2GB\""], @config.accessory(:redis).option_args
end
end