目标:
部署可访问主机共享库(liblinphone.so)或可访问主机上的liphone安装的Docker容器。

正在使用的软件:
-Raspberry Pi计算模块
-单声道(C#)
-带C#包装的Linphone
- docker

摘要:
我在Mono(C#)中为RPi3编写代码。此代码使用GPIO和linphone安装(Linphone
在该系统上安装了ARM版本)。该代码可以在本机Mono上完美运行。我的下一个目标是在Docker容器中运行它。为此,我确实设置了一个私有(private)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

我的猜测是我无法安装线性电话.so / installation。但是相反,我必须挂载docker socket并在主机上本地运行它。这也没有使我成功(由于无知)。

最佳答案

在构建容器的Dockerfile中,运行安装命令以安装提供共享库的软件包。

07-24 09:39
查看更多