Цель:
Развертывание контейнера Docker, который может получить доступ к общим библиотекам хостов (liblinphone.so) или получить доступ к установке liphone на хосте.
Используемое программное обеспечение:
- Вычислительный модуль Raspberry Pi
- Моно (C #)
- Линфон с оберткой C #
- Докер
Резюме:
Я пишу код для RPi3 в Mono (C #).Этот код использует GPIO и установку linphone (версия Linphone ARM установлена в этой системе).Код работает безупречно на родном Mono.Моя следующая цель - запустить его внутри контейнера Docker.Для этого я создал частный сервер Gitlab, реестр Docker и конвейер Gitlab для создания образа Docker.Образ Docker собирается без каких-либо ошибок.Когда я запускаю код, он не может найти файл liblinphone.so, очевидно ... но я не знаю, как это сделать.
Команда запуска Docker:
docker run --privileged -v /etc/ld.so.cache:/etc/ld.so.cache -v /etc/ld.so.conf.d/:/etc/ld.so.conf.d/ -v /usr/local/lib/:/usr/local/lib/ -v /var/run/docker.sock:/var/run/docker.sock [registry]:5000/[image]:latest
Я добавил несколько томов, где находится файл .so, и некоторые ссылки (некоторые тома не нужны).Частью --privileged является доступ к GPIO.
Ошибка:
Unhandled Exception:
System.DllNotFoundException: linphone assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) Linphone.Core.linphone_core_set_log_level_mask(uint)
at Linphone.Core.SetLogLevelMask (System.UInt32 mask) [0x00001] in <5285048db55d447fae3be4c32e253dbd>:0
at BlackBox.Phone.CreatePhone (System.String username, System.String password, System.String server, System.Int32 port, System.String agent, System.String version) [0x00001] in <5285048db55d447fae3be4c32e253dbd>:0
at BlackBox.BlackBox..ctor (BlackBox.BlackBox+AppFunction appFunction) [0x00198] in <5285048db55d447fae3be4c32e253dbd>:0
at BlackBox.MainClass.Main (System.String[] args) [0x00001] in <5285048db55d447fae3be4c32e253dbd>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: linphone assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) Linphone.Core.linphone_core_set_log_level_mask(uint)
at Linphone.Core.SetLogLevelMask (System.UInt32 mask) [0x00001] in <5285048db55d447fae3be4c32e253dbd>:0
at BlackBox.Phone.CreatePhone (System.String username, System.String password, System.String server, System.Int32 port, System.String agent, System.String version) [0x00001] in <5285048db55d447fae3be4c32e253dbd>:0
at BlackBox.BlackBox..ctor (BlackBox.BlackBox+AppFunction appFunction) [0x00198] in <5285048db55d447fae3be4c32e253dbd>:0
at BlackBox.MainClass.Main (System.String[] args) [0x00001] in <5285048db55d447fae3be4c32e253dbd>:0
Я предполагаю, что я не могу установить linphone .so / установка.но вместо этого я должен смонтировать докер-сокет и запустить его на хосте.и это не принесло мне успеха (из-за невежества).