Node.js 云铸造中的电子子工艺

Node.js 云铸造中的电子子工艺,node.js,ubuntu,electron,cloud-foundry,Node.js,Ubuntu,Electron,Cloud Foundry,我有一个应用程序正在cloudfoundry内部运行,需要使用Electron启动一个子进程。这在本地运行很好,但一旦我部署到CloudFoundry,它就会失败,因为Ubuntu服务器没有显示驱动程序。我不能在buildpack中使用apt-get,因为cloud foundry限制使用sudo。有没有人遇到过这样的问题并找到了解决办法 我想到了两个选项: 您可以手动编译所需的库或二进制文件,并将其与应用程序捆绑在一起。编译兼容二进制文件的最简单方法是使用cloudfoundry/cflinu

我有一个应用程序正在cloudfoundry内部运行,需要使用Electron启动一个子进程。这在本地运行很好,但一旦我部署到CloudFoundry,它就会失败,因为Ubuntu服务器没有显示驱动程序。我不能在buildpack中使用apt-get,因为cloud foundry限制使用
sudo
。有没有人遇到过这样的问题并找到了解决办法

我想到了两个选项:

  • 您可以手动编译所需的库或二进制文件,并将其与应用程序捆绑在一起。编译兼容二进制文件的最简单方法是使用
    cloudfoundry/cflinuxfs2
    docker映像,在该容器中编译二进制文件,然后将其提取出来。然后,您可以使用应用程序推送它们

    这个过程非常繁琐,很容易错过所需的共享库。它还使你的应用程序更大,你仍然无法安装需要root访问权限的东西。我不推荐它,除了一些小东西来增强你的应用程序

  • 您可以推送docker容器,
    cf push-o
    。Docker映像可以包含所需的任何二进制文件。缺点是并非所有的CF提供商都支持推送docker映像。我不能保证这会奏效,但这可能是你最好的机会


  • 希望有帮助

    由于cloudfoundry允许使用多个构建包,您可以尝试使用
    apt buildpack
    :它允许在您的cloudfoundry计算机中安装软件包

    在您的
    manifest.yml
    中,指定apt构建包和节点构建包(或者您使用的任何东西。apt必须放在第一位!):

    在根目录中创建一个
    apt.yml

    ---
    packages:
      - <name_of_your_electron_package>
    
    ---
    包装:
    - 
    
    ---
    packages:
      - <name_of_your_electron_package>