【问题标题】:Run Unity3D standalone game within a Docker container在 Docker 容器中运行 Unity3D 独立游戏
【发布时间】:2022-10-17 13:16:23
【问题描述】:

这可能是微不足道的,甚至是不可能的,但我花了最后一天试图找到一种方法来运行由 Unity3D 在 Docker 容器中构建的独立可执行文件。

Unity3D 编辑器在 Ubuntu 20.04 机器上运行,project.86_64 在那里运行没有问题。但是,我希望在专用的 Docker 容器中运行相同的独立游戏。

现在我尝试使用 ubuntu Docker 映像,将构建的文件导入其中,将容器连接到 XServer(使用整个 xauth、export DISPLAY 等,这应该可以工作,因为我显示了一个 python GUI另一个容器)但是当我启动可执行文件时,它挂起而不提示任何错误。我的假设是它正在等待显示或类似的东西,但我对此一无所知(试图查找应用程序日志但在可执行文件的文件夹中找不到任何类型的东西)。 另一个 - 非常合理的 - 可能性是我在容器中缺少一些依赖项,但我无法找到独立游戏需要哪些依赖项(如果有的话)。

如果重要的话,Unity3D 版本是 2020.3(免费版),Ubuntu 20.04 机器,ubuntu:latest 图像。

提前致谢!

为什么?长话短说,这种奇怪设置的原因是,我正在尝试使用 docker-compose 将 3 件式应用程序“python-Node.JS-Unity3D”部署为 3 个容器,在它们自己的单独网络中进行通信。我知道,这很复杂,可能是不必要的,请耐心等待。

【问题讨论】:

  • 你成功了吗,@hypothe?
  • 通过许多手动步骤,我能够让 Unity 在图像 unityci/editor:ubuntu-2020.3.34f1-linux-il2cpp-1.0.1 上运行,但它在 Ubuntu 18.04 上运行,我真的需要让它在 Ubuntu 20.04 上运行
  • @RubenAlves 很高兴你找到了方法!不幸的是,我不得不稍微改变我的计划,我最终在其 WebGL 中运行模拟/游戏,使用 NodeJS 服务器 docker 来服务它。由于我的模拟使用套接字与 python 代码进行通信,因此不得不更改很多东西,但最后一切都很顺利。
  • 你好鲁本,你能给出一些关于你如何让它工作的基本步骤吗?我一直在使用 unityci 容器。

标签: docker unity3d


【解决方案1】:

我遇到过同样的问题。可能是因为 GPU 无法被容器识别。我通过使用以下 docker compose 文件解决了它:

unity:
  image: unityci/editor:ubuntu-2021.3.3f1-base-1
  volumes:
    - /tmp/.X11-unix:/tmp/.X11-unix
    - ${XAUTHORITY}:${XAUTHORITY}
    - $XDG_RUNTIME_DIR:$XDG_RUNTIME_DIR
  environment:
    - XAUTHORITY
    - DISPLAY
    - XDG_RUNTIME_DIR
    - NVIDIA_VISIBLE_DEVICES=all
    - NVIDIA_DRIVER_CAPABILITIES=all
  deploy:
    resources:
      reservations:
        devices:
          - capabilities: [gpu]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 2018-02-06
    相关资源
    最近更新 更多