diff --git a/lib/mrsk/commands/builder/base.rb b/lib/mrsk/commands/builder/base.rb index 23428fdc..91276260 100644 --- a/lib/mrsk/commands/builder/base.rb +++ b/lib/mrsk/commands/builder/base.rb @@ -12,6 +12,9 @@ class Mrsk::Commands::Builder::Base < Mrsk::Commands::Base def build_options [ *build_tags, *build_labels, *build_args, *build_secrets, *build_dockerfile ] end + + def build_context + context end private @@ -46,4 +49,8 @@ class Mrsk::Commands::Builder::Base < Mrsk::Commands::Base def dockerfile (config.builder && config.builder["dockerfile"]) || "Dockerfile" end + + def context + (config.builder && config.builder["context"]) || "." + end end diff --git a/lib/mrsk/commands/builder/multiarch.rb b/lib/mrsk/commands/builder/multiarch.rb index 43fb17d4..3ecd7b97 100644 --- a/lib/mrsk/commands/builder/multiarch.rb +++ b/lib/mrsk/commands/builder/multiarch.rb @@ -13,7 +13,7 @@ class Mrsk::Commands::Builder::Multiarch < Mrsk::Commands::Builder::Base "--platform", "linux/amd64,linux/arm64", "--builder", builder_name, *build_options, - "." + build_context end def info diff --git a/lib/mrsk/commands/builder/native.rb b/lib/mrsk/commands/builder/native.rb index 338e5acf..c4208d6e 100644 --- a/lib/mrsk/commands/builder/native.rb +++ b/lib/mrsk/commands/builder/native.rb @@ -9,7 +9,7 @@ class Mrsk::Commands::Builder::Native < Mrsk::Commands::Builder::Base def push combine \ - docker(:build, *build_options, "."), + docker(:build, *build_options, build_context), docker(:push, config.absolute_image) end diff --git a/lib/mrsk/commands/builder/native/remote.rb b/lib/mrsk/commands/builder/native/remote.rb index 97a6193f..f461c589 100644 --- a/lib/mrsk/commands/builder/native/remote.rb +++ b/lib/mrsk/commands/builder/native/remote.rb @@ -17,7 +17,7 @@ class Mrsk::Commands::Builder::Native::Remote < Mrsk::Commands::Builder::Native "--platform", platform, "--builder", builder_name, *build_options, - "." + build_context end def info diff --git a/test/commands/builder_test.rb b/test/commands/builder_test.rb index f528d557..77ff07bc 100644 --- a/test/commands/builder_test.rb +++ b/test/commands/builder_test.rb @@ -58,6 +58,13 @@ class CommandsBuilderTest < ActiveSupport::TestCase builder.target.build_options.join(" ") end + test "build context" do + builder = new_builder_command(builder: { "context" => ".." }) + assert_equal \ + "docker buildx build --push --platform linux/amd64,linux/arm64 --builder mrsk-app-multiarch -t dhh/app:123 -t dhh/app:latest --label service=\"app\" --file Dockerfile ..", + builder.push.join(" ") + end + test "native push with build args" do builder = new_builder_command(builder: { "multiarch" => false, "args" => { "a" => 1, "b" => 2 } }) assert_equal \