Ruby 如何从ubuntu运行Win32OLE调用?

Ruby 如何从ubuntu运行Win32OLE调用?,ruby,ubuntu,docker,wine,win32ole,Ruby,Ubuntu,Docker,Wine,Win32ole,我有一些简单的sinatra应用程序,它们利用OTA COM dll与质量中心对话 我想将这些站点移动到docker映像中,这样我就可以在docker服务器上托管它们 我突然想到,理论上,我应该能够通过战略性地使用葡萄酒来实现这一目标 提示:我记得在某个地方读到过这样一篇文章:要让Win32OLE在linux上的Ruby中工作,可以使用wine安装windows版本的Ruby,然后通过windows版本的Ruby运行脚本 说 我以前处理过这个问题。我在下面安装了一键式安装程序 交叉办公室和用户使

我有一些简单的sinatra应用程序,它们利用OTA COM dll与质量中心对话

我想将这些站点移动到docker映像中,这样我就可以在docker服务器上托管它们

我突然想到,理论上,我应该能够通过战略性地使用葡萄酒来实现这一目标

提示:我记得在某个地方读到过这样一篇文章:要让Win32OLE在linux上的Ruby中工作,可以使用wine安装windows版本的Ruby,然后通过windows版本的Ruby运行脚本

我以前处理过这个问题。我在下面安装了一键式安装程序 交叉办公室和用户使用它。另一个选择是安装 msys,在该模式下编译ruby,然后使用该ruby。无论如何 如果您需要在crossover环境下安装/构建另一个ruby

后来

最后,我安装了带有Crossover的Office2000,然后使用 windows installer将windows ruby安装到与 办公室。最后,我将下面的bash脚本放在我的/usr/bin目录中 因此,我可以使用“#>wruby some_script.rb”运行我的ruby文件

我对葡萄酒、跨界酒或瓶装酒一无所知,所以我对它一无所知

我该怎么做?我可以用Dockerfile作为基本图像的样子是什么

注意:我发现一些docker图片声称安装wine(这可能是一个很好的起点)


讨论如何让Win32::OLE在ubuntu下工作。

不要忘记在Dockerfile中使用
用户xx
,因为在wine中使用非特权用户很重要。您将在registry.hub.docker.com中找到几个这样一个用户的葡萄酒示例

我想你可能在这里猎杀独角兽。如果我能得到一些关于如何使用葡萄酒来运行MSI和如何使用瓶子的指导,我很可能会做docker方面的事情。也许我应该简化这个问题。wine msiexec/I xxxxxx.msi应该安装在wine中。您应该查看此链接中的Dockerfile,它将Windows软件对接
   ==/usr/bin/wruby
   #!/usr/bin/env ruby
   `/opt/cxofficebeta/bin/wine --bottle myBottle --cx-app ruby.exe #{ARGV.join(" ")}`