我能否在Docker容器中运行Xcode?

84
我能把 Xcode 放到 Docker 容器里面跑吗?我想要将 Xcode CI 系统放到 Docker 里,只是想知道这个是否可行。

3
我的猜测是不行的:https://dev59.com/o3E95IYBdhLWcg3wN7Ov - Abdullah Jibaly
但愿我错了 - Abdullah Jibaly
我怀疑你是对的。 - Chris
1
可能可以运行xcodebuild或Facebook的xctool,但是iOS模拟器(你需要进行单元测试)可能无法实现,我想。 - Chris
我猜这需要在 Linux 上安装 Xcode 命令行工具(因为 xctool 需要这些工具来构建项目)。 - NSTJ
相关内容:https://dev59.com/BFUM5IYBdhLWcg3wJ9vV - Christian
3个回答

38

由于本答案是在2015年撰写的,现在可能已经过时。但它仍可作为参考,以重现相同的内容。

--

这个来自Docker Hackathon 2015的repo描述了如何使用docker客户端构建和运行iOS应用程序。这符合您的需求吗?

观看视频:

秘密酱汁位于server.js中,该文件实现了一个REST API来模拟docker服务器。因此,它实际上并不在真正的Linux docker服务器中运行iOS - 而是实现了docker API,然后充当ios-sim(run)和XCode(build)的代理。


确实看起来非常有趣! - Chris
25
我不相信这样做能够实现原来问题的目的。我的理解是@Chris希望将他的单元测试/构建设置从(可能是基于OSX机器的)持续集成服务器迁移到基于Docker的CI系统(例如Bitbucket Pipelines?)。我的用例只是:Bamboo托管在OSX机器上-> Bitbucket Pipelines。 - Johnus
2
我在实现这个过程中没有成功。它使用了XCode图像,我不确定它从哪里获取,因为它不在Docker库中。 - Vimalraj Selvam
这是什么:他们创建了一个Docker注册服务器,可以接收Dockerfile,然后调用已经本地安装的xcodebuild。 Docker的优点(可以配置、生成和使用后丢弃的容器)未被充分利用(不幸的是)。 (虽然这是运行xcodebuild的非常有创意的方法 :-) ) - raoel
6
我不认为这是一个有效的答案。该 repo 的作者在这里说:> xcode:7.0 docker 镜像实际上并不是一个 Docker 镜像。在这种情况下,Xcode:7.0 只是告诉构建工具在 OSX 平台上使用 xcode 7 进行构建。这个基本的“镜像”实际上就是您的 Mac 上现有的开发环境。我希望尽可能地让它看起来像传统的 Dockerfile(并匹配概念)。 - Mig82
显示剩余3条评论

12

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

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


5

Circle CI有一个在容器中使用Xcode的选项。这是我的CI流程配置的摘录:

ios-build-env: &ios-build-env
  macos:
    xcode: "11.4.1"

jobs:
  ios-deploy:
    <<: *ios-build-env
    steps:
    - checkout
    ...

圆形CI文档: https://circleci.com/docs/2.0/testing-ios/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接