Я пытаюсь создать образ докера и пытаюсь использовать docker-api для этого. Цель состоит в том, чтобы передать параметры сборки в образ докера с помощью docker api: https://www.rubydoc.info/github/swipely/docker-api/Docker%2FImage.build_from_dir
В документации сказано, что для передачи buildargs на opts в api выше:
JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker uses the buildargs as the environment context for commands run via the Dockerfile RUN instruction, or for variable expansion in other Dockerfile instructions. This is not meant for passing secret values. Read more about the buildargs instruction.
Следующий код работает только с тэгами.
Docker::Image.build_from_dir(Dir.pwd, 't' => "MyTag", 'buildargs' => "{ABC = > 'abc', CDE => 'cde'}")
Однако, когда я добавляю buildargs, я получаю следующую ошибку:
Excon::Error::Socket: Broken pipe (Errno::EPIPE)
<internal:prelude>:134:in `__write_nonblock'
<internal:prelude>:134:in `write_nonblock'
благодаря. JSON.generate (params) сделал свое дело


Строка
buildargsнедействительна в формате JSON. Вы можете сгенерировать обычныйHashиз аргументов, а затем вызвать для него#to_json.