#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 - MYSQL_ROOT_PASSWORD
volumes: volumes:
- /var/lib/mysql:/var/lib/mysql - /var/lib/mysql:/var/lib/mysql
options:
cpus: 4
memory: "2GB"
redis: redis:
image: redis:latest image: redis:latest
host: 1.1.1.4 host: 1.1.1.4

View File

@@ -1,6 +1,7 @@
class Mrsk::Commands::Accessory < Mrsk::Commands::Base class Mrsk::Commands::Accessory < Mrsk::Commands::Base
attr_reader :accessory_config 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:) def initialize(config, name:)
super(config) super(config)
@@ -17,6 +18,7 @@ class Mrsk::Commands::Accessory < Mrsk::Commands::Base
*env_args, *env_args,
*volume_args, *volume_args,
*label_args, *label_args,
*option_args,
image image
end end

View File

@@ -1,5 +1,5 @@
class Mrsk::Configuration::Accessory 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 attr_accessor :name, :specifics
@@ -67,6 +67,14 @@ class Mrsk::Configuration::Accessory
argumentize "--volume", volumes argumentize "--volume", volumes
end end
def option_args
if args = specifics["options"]
optionize args
else
[]
end
end
private private
attr_accessor :config attr_accessor :config

View File

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