Как зарегистрировать приложения в Spring Cloud DataFlow?

Я начинаю с Spring Cloud DataFlow, запустил экземпляр через Docker Compose и успешно создал Streams с примерами приложений.

Я написал приложение Source и Sink самостоятельно, и я не могу зарегистрировать их на панели инструментов SCDF.

введите здесь описание изображения

Я пробовал адреса maven:// и file:///, но поскольку панель управления работает внутри контейнера Docker, я думаю, проблема в том, что она не может получить доступ ни к локальному репозиторию .m2, ни к локальному файлу. система, в которой расположены банки.

Как мне продолжить? Должен ли я отображать файловую систему через Docker Compose или как?


person Andrea Ligios    schedule 27.06.2018    source источник
comment
Спасибо, что сообщили об этом. Мы еще не исследовали этот вариант, но у меня есть spring-cloud / spring-cloud-dataflow # 2286, и мы скоро рассмотрим его. А пока, возможно, вы могли бы изучить вариант, описанный в этом поток. Возможно, также внесите его обратно в проект, если вам это удастся. :)   -  person Sabby Anandan    schedule 27.06.2018


Ответы (2)


Вот полный и официальный ответ из документации по потоку данных: Доступ к файловой системе хоста

Обратите внимание, что вам необходимо подключить точно один и тот же том к обоим dataflow-server:

dataflow-server:
  # ...
  volumes:
     - /home/MY_USER_NAME/.m2:/home/cnb/.m2

и skipper-server:

skipper-server:
  # ...
  volumes:
     - /home/MY_USER_NAME/.m2:/home/cnb/.m2

Примечание. Начиная с DataFlow 2.8.0+ и Skipper 2.7.1+, пути монтирования внутри контейнера были изменены с /root/.m2 на /home/cnb/.m2/.

person tzolov    schedule 07.02.2020

Итак, проблема была именно в этом.

Я сообщаю о комментарии @SabbyAnandan здесь (у комментариев нет истории, и это содержательная)

Спасибо, что сообщили об этом. Мы еще не исследовали этот вариант, но у меня есть spring-cloud / spring-cloud-dataflow # 2286, и мы скоро рассмотрим его.

А пока, возможно, вы могли бы изучить вариант, описанный в этом поток. Возможно, также внесите его обратно в проект, если вам это удастся. :)

В ожидании автоматического решения пока достаточно добавить в docker-compose.yml следующую строку:

# ... stuff ...
dataflow-server:
# ... stuff ....
  volumes:
    - /home/MY_USER_NAME/.m2:/root/.m2

Таким образом, мы сможем загружать наши артефакты через пользовательский интерфейс в форме Maven:

maven://com.foo.bar:my-source:jar:0.0.1-SNAPSHOT

(при условии, что мы запустили mvn clean install, чтобы установить артефакт в репозиторий .m2 той же системы, где запущен Docker-Compose, который не обязательно является нашим, но потенциально удаленным).

person Andrea Ligios    schedule 02.07.2018
comment
Этот ответ неполный, так как шкиперу-серверу нужен доступ к тому же объему. Например. вам необходимо смонтировать точно такой же том как к серверу потока данных, так и к серверу-шкиперу, как описано здесь: stackoverflow.com/a/60113245 / 4430769 - person tzolov; 07.02.2020
comment
Спасибо за обновление @tzolov, теперь я принял ваш ответ - person Andrea Ligios; 07.02.2020