Есть ли документ / pr / issue, в котором описывается интерфейс RPC для подключаемых модулей драйверов? Я обнаружил несколько связанных проблем # 1626 и # 1902, но я изо всех сил пытаюсь найти что-то более "конкретное; в документах нет ничего, что я мог бы увидеть?"
Привет @prologic. Пока нет формальной спецификации (к сожалению :(), но, по сути, идея состоит в том, что вам нужно реализовать интерфейс Driver
а затем вызвать plugin.RegisterDriver()
для Driver
в двоичном файле вашего плагина main
Метод
@nathanleclaire Спасибо за ответ! Я смотрел на различные сторонние (_не упакованные с docker-machine
_), однако из-за различных проблем и запросов на вытягивание у меня сложилось впечатление, что способ работы подключаемых модулей драйвера докер-машины не зависит от языка? (_или, по крайней мере, должно быть? _)
Разве это не так?
@prologic Нет, он довольно тесно связан с Golang net/rpc
.
Но это RPC и разговоров через сокет нет? :) Что мне не хватает: P
@prologic Он построен с использованием https://golang.org/pkg/net/rpc/, а транспортный кодек - gob
, который является собственным форматом кодирования blob Go. _Может_ быть возможным общаться с помощью gob
на других языках (см., Например, https://groups.google.com/forum/#!topic/golang-nuts/xtXh0yWOens), но это может быть больше проблем, чем его ценность.
Чтобы быть по-настоящему независимым от языка, нам нужно было бы использовать что-то вроде JSON-RPC или protobufs, которые специально разработаны для этого. Это определенно то, что я принимаю во внимание в будущем, но для этого потребуется повышение версии API плагина (он не будет ни обратно, ни вперед совместим).
Удар!
Самый полезный комментарий
@prologic Он построен с использованием https://golang.org/pkg/net/rpc/, а транспортный кодек -
gob
, который является собственным форматом кодирования blob Go. _Может_ быть возможным общаться с помощьюgob
на других языках (см., Например, https://groups.google.com/forum/#!topic/golang-nuts/xtXh0yWOens), но это может быть больше проблем, чем его ценность.Чтобы быть по-настоящему независимым от языка, нам нужно было бы использовать что-то вроде JSON-RPC или protobufs, которые специально разработаны для этого. Это определенно то, что я принимаю во внимание в будущем, но для этого потребуется повышение версии API плагина (он не будет ни обратно, ни вперед совместим).