From a2084b23cc979067e31354d762f4174cb9d4db47 Mon Sep 17 00:00:00 2001 From: Onni Hakala Date: Sat, 1 Dec 2018 12:23:40 +0200 Subject: [PATCH] Support context: and dockerfile: in build directive --- lib/docker-compose/models/compose_container.rb | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/docker-compose/models/compose_container.rb b/lib/docker-compose/models/compose_container.rb index 0f0636d..ad26d07 100644 --- a/lib/docker-compose/models/compose_container.rb +++ b/lib/docker-compose/models/compose_container.rb @@ -56,7 +56,20 @@ def prepare_image end elsif @attributes.key?(:build) @internal_image = SecureRandom.hex # Random name for image - Docker::Image.build_from_dir(@attributes[:build], {t: @internal_image}) + opts = {t: @internal_image} + + # docker-api can't figure out context directive + # We need to convert it to path instead + if @attributes[:build].is_a? Hash + dir = @attributes[:build]['context'] + + # Use all other opts as is but remove context + opts.merge!(@attributes[:build]).delete('context') + end + + dir ||= @attributes[:build] + + Docker::Image.build_from_dir(dir, opts) end end