从docker容器访问主机扫描仪

从docker容器访问主机扫描仪,docker,alfresco,Docker,Alfresco,我在Linux主机上使用docker运行Alfresco 由于其他原因,我不得不和docker一起在露天活动。构建脚本是使用maven生成的-您可以在“从原型生成项目”部分的下面找到说明 我已通过USB端口将Brother DCP-J315W连接到我的电脑 当我执行: scanimage -L 我得到以下结果: device 'brother4:bus2;dev1' is a Brother *DCP-J315W USB scanner 在docker容器中执行相同的命令将返回找到任何扫描仪

我在Linux主机上使用docker运行Alfresco

由于其他原因,我不得不和docker一起在露天活动。构建脚本是使用
maven
生成的-您可以在“从原型生成项目”部分的下面找到说明

我已通过USB端口将
Brother DCP-J315W
连接到我的电脑

当我执行:

scanimage -L
我得到以下结果:

device 'brother4:bus2;dev1' is a Brother *DCP-J315W USB scanner
在docker容器中执行相同的命令将返回找到任何扫描仪的错误

我试着用
主机
网络模式运行容器,但这似乎毫无意义,因为它不是网络扫描仪


有没有办法在docker容器中使用主机扫描程序

即使Docker容器可以看到扫描仪,您仍然需要从扫描仪读取扫描的文档并将其放入存储库的软件。与其解决Docker无法访问主机硬件的问题,不如简单地通过WebDAV将驱动器映射到Alfresco。这将使用HTTP/S,因此连接时应该没有问题

有了它,您应该能够在主机上运行扫描软件,并告诉它将扫描的图像存储在安装的驱动器中


另一种方法是检查您的扫描软件是否支持CMIS,CMIS是处理Alfresco等内容存储库的行业标准。如果有,您可以将扫描软件指向Alfresco CMIS服务URL。这种方法可能比挂载驱动器方法更好,因为如果您将元数据分配给扫描的文档,元数据可以通过CMIS写入Alfresco中的对象,而直接挂载文件只会将文件写入repo,而无需额外的元数据。

除了Jeff Potts回答:

只有极少数扫描仪软件解决方案支持使用http/webdav/cmis进行传输。我不建议直接扫描到户外。大多数扫描仪软件解决方案都希望在文件共享或本地文件系统中完成最终图像/pdf之前写入/更改/删除多个文件。直接写入Alfresco可能会导致许多不需要的二进制内容在存储库中清理之前保留数周,或者在最坏的情况下根本无法工作


相反,我建议您将扫描仪连接到任何操作系统,将文件写入一个临时本地文件夹,一个简单的cron脚本可以将一分钟前扫描的文件上载到一个Alfresco文件夹。这还允许例如通过OCR流程对文档进行管道传输,以允许在露天搜索文档。

一般来说,Docker容器无法访问主机硬件。有很多方法可以解决这个问题,但它们似乎并不特别强大。通常在DOCKER之外运行这样的事情。“DavidMaze,你能多说一些关于这些方法的吗?如果你使用的是不支持WebDAV或CMIS的扫描软件,你应该考虑切换扫描软件。”