Я начинаю с Spring Cloud DataFlow, я запускал экземпляр через Docker Compose и успешно создал Потоки с примерами приложений.
Я написал приложение Источник и Раковина самостоятельно, и я не могу зарегистрировать их на панели управления SCDF.
Я пробовал адреса как maven://, так и file:///, но поскольку панель управления работает внутри контейнера Докер, я думаю, проблема в том, что он не может получить доступ к локальному репозиторию .m2 или к локальной файловой системе, где расположены банки.
Как мне продолжить? Должен ли я отображать файловую систему через Docker Compose или как?




Итак, проблема была именно в этом.
Я сообщаю здесь о комментарии @SabbyAnandan (у комментариев нет истории, и это значимый комментарий)
Thanks for reporting this. We haven't explored this option yet, but I have spring-cloud/spring-cloud-dataflow#2286, and we will look into it soon.
In the meantime, maybe you could explore the option described in this thread. Possibly also contribute it back to the project, if you're successful with it. :)
В ожидании автоматизированного решения, пока достаточно добавить в 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, который не обязательно является нашим, но потенциально удаленным).
Этот ответ неполный, так как шкиперу-серверу нужен доступ к тому же объему. Например. вам необходимо смонтировать точно такой же том как к серверу потока данных, так и к серверу-шкиперу, как описано здесь: stackoverflow.com/a/60113245/4430769
Спасибо за обновление @tzolov, теперь я принял ваш ответ
Вот полный и официальный ответ из документации по потоку данных: Доступ к файловой системе хоста
Обратите внимание, что вам нужно смонтировать один и тот же том точно на оба 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
Note: Starting with DataFlow 2.8.0+ and Skipper 2.7.1+ the in-container mount paths had changed from
/root/.m2to/home/cnb/.m2/instead.
Спасибо, что сообщили об этом. Мы еще не исследовали этот вариант, но у меня есть весеннее облако / весеннее облако-поток данных # 2286, и мы скоро его рассмотрим. А пока, возможно, вы могли бы изучить вариант, описанный в этом нить. Возможно, также внесите его обратно в проект, если вам это удастся. :)