【问题标题】:Can I run Xcode in a docker container?我可以在 docker 容器中运行 Xcode 吗?
【发布时间】:2015-02-18 02:06:03
【问题描述】:

我可以在 docker 容器中运行 Xcode 吗?我想 dockerise 一个 Xcode CI 系统,只是想知道这是否可能。

【问题讨论】:

  • 虽然会出错
  • 我怀疑你是对的
  • 可能可以运行 xcodebuild 或 facebook 的 xctool,但是我想你需要用于单元测试的 iOS 模拟器将无法使用
  • 我猜这需要 Xcode 命令行工具才能在 linux 上工作(因为 xctool 需要这些来构建项目)

标签: xcode docker


【解决方案1】:

这个答案现在可能已经过时了,因为它是在 2015 年写的。它仍然可以作为参考来复制它

--

来自Docker Hackathon 2015 的这个 repo 描述了如何build and run iOS apps with the docker client。这就是你所追求的吗?

观看视频:

秘诀在server.js 中,它实现了一个 REST API 来模拟一个 docker 服务器。所以实际上它并不是在真正的 Linux docker 服务器上运行 iOS,而是实现了 docker API,然后充当 ios-sim(运行)和 XCode(构建)的代理。

【讨论】:

  • 当然看起来很有趣!
  • 我不相信这可以实现最初的问题?我的解释是,@Chris 希望将他的单元测试/构建设置从(可能基于 OSX 机器的)持续集成服务器迁移到基于 Docker 的 CI 系统(例如 Bitbucket Pipelines?)。我的用例就是:Bamboo 托管在 OSX 机器上 -> Bitbucket Pipelines。
  • 我没有成功实现这一点。它使用 XCode 图像,我不确定它来自哪里,因为它不在 Docker 库中。
  • 这是做什么的:他们创建了一个 docker 注册服务器,可以接收 Dockerfile,然后调用 xcodebuild(应该在本地安装)。 Docker 的优点(使用后可以配置、派生和丢弃的容器)并没有以这种方式使用(很遗憾)。 (虽然这是运行 xcodebuild 的一种非常有创意的方式 :-))
  • 我认为这不是一个有效的答案。 repo 的作者本人说here >xcode:7.0 docker 映像实际上不是 docker 映像。在这种情况下,Xcode:7.0 只是告诉构建工具在 OSX 平台上使用 xcode 7 构建。这个基础“镜像”基本上就是你 Mac 上现有的开发环境。我想让它看起来尽可能像一个传统的 dockerfile(并匹配概念)。
【解决方案2】:

查看Docker-OSX,它在 Docker 中运行带有 Xcode 支持的 macOS。

您可以通过 SSH 或 VNC 连接到该 macOS 并在 Linux 上使用 Xcode

【讨论】:

    【解决方案3】:

    Circle CI 可以选择在容器中使用 Xcode。这是我的 ci 管道配置的摘录:

    ios-build-env: &ios-build-env
      macos:
        xcode: "11.4.1"
    
    jobs:
      ios-deploy:
        <<: *ios-build-env
        steps:
        - checkout
        ...
    

    圈子文档: https://circleci.com/docs/2.0/testing-ios/

    【讨论】:

      猜你喜欢
      • 2020-12-06
      • 2014-03-31
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      相关资源
      最近更新 更多