Skip to content

Commit cf6d7b2

Browse files
authored
Merge pull request #1739 from 9c23a5/use-option-args-on-accessory-exec-new-container
Use option_args when running accessories in a new container
2 parents 8a79846 + fb66991 commit cf6d7b2

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

lib/kamal/commands/accessory.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def execute_in_new_container(*command, interactive: false)
6868
*network_args,
6969
*env_args,
7070
*volume_args,
71+
*option_args,
7172
image,
7273
*command
7374
end

test/commands/accessory_test.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ class CommandsAccessoryTest < ActiveSupport::TestCase
2222
"secret" => [
2323
"MYSQL_ROOT_PASSWORD"
2424
]
25+
},
26+
"options" => {
27+
"cpus" => "4",
28+
"memory" => "2GB"
2529
}
2630
},
2731
"redis" => {
@@ -57,7 +61,7 @@ class CommandsAccessoryTest < ActiveSupport::TestCase
5761

5862
test "run" do
5963
assert_equal \
60-
"docker run --name app-mysql --detach --restart unless-stopped --network kamal --log-opt max-size=\"10m\" --publish 3306:3306 --env MYSQL_ROOT_HOST=\"%\" --env-file .kamal/apps/app/env/accessories/mysql.env --label service=\"app-mysql\" private.registry/mysql:8.0",
64+
"docker run --name app-mysql --detach --restart unless-stopped --network kamal --log-opt max-size=\"10m\" --publish 3306:3306 --env MYSQL_ROOT_HOST=\"%\" --env-file .kamal/apps/app/env/accessories/mysql.env --label service=\"app-mysql\" --cpus \"4\" --memory \"2GB\" private.registry/mysql:8.0",
6165
new_command(:mysql).run.join(" ")
6266

6367
assert_equal \
@@ -81,7 +85,7 @@ class CommandsAccessoryTest < ActiveSupport::TestCase
8185
@config[:accessories]["mysql"]["network"] = "custom"
8286

8387
assert_equal \
84-
"docker run --name app-mysql --detach --restart unless-stopped --network custom --log-opt max-size=\"10m\" --publish 3306:3306 --env MYSQL_ROOT_HOST=\"%\" --env-file .kamal/apps/app/env/accessories/mysql.env --label service=\"app-mysql\" private.registry/mysql:8.0",
88+
"docker run --name app-mysql --detach --restart unless-stopped --network custom --log-opt max-size=\"10m\" --publish 3306:3306 --env MYSQL_ROOT_HOST=\"%\" --env-file .kamal/apps/app/env/accessories/mysql.env --label service=\"app-mysql\" --cpus \"4\" --memory \"2GB\" private.registry/mysql:8.0",
8589
new_command(:mysql).run.join(" ")
8690
end
8791

@@ -105,7 +109,7 @@ class CommandsAccessoryTest < ActiveSupport::TestCase
105109

106110
test "execute in new container" do
107111
assert_equal \
108-
"docker run --rm --network kamal --env MYSQL_ROOT_HOST=\"%\" --env-file .kamal/apps/app/env/accessories/mysql.env private.registry/mysql:8.0 mysql -u root",
112+
"docker run --rm --network kamal --env MYSQL_ROOT_HOST=\"%\" --env-file .kamal/apps/app/env/accessories/mysql.env --cpus \"4\" --memory \"2GB\" private.registry/mysql:8.0 mysql -u root",
109113
new_command(:mysql).execute_in_new_container("mysql", "-u", "root").join(" ")
110114
end
111115

@@ -117,7 +121,7 @@ class CommandsAccessoryTest < ActiveSupport::TestCase
117121

118122
test "execute in new container over ssh" do
119123
new_command(:mysql).stub(:run_over_ssh, ->(cmd) { cmd.join(" ") }) do
120-
assert_match %r{docker run -it --rm --network kamal --env MYSQL_ROOT_HOST=\"%\" --env-file .kamal/apps/app/env/accessories/mysql.env private.registry/mysql:8.0 mysql -u root},
124+
assert_match %r{docker run -it --rm --network kamal --env MYSQL_ROOT_HOST=\"%\" --env-file .kamal/apps/app/env/accessories/mysql.env --cpus \"4\" --memory \"2GB\" private.registry/mysql:8.0 mysql -u root},
121125
stub_stdin_tty { new_command(:mysql).execute_in_new_container_over_ssh("mysql", "-u", "root") }
122126
end
123127
end

0 commit comments

Comments
 (0)