我可以在 docker 容器中运行 Xcode 吗?
Posted
技术标签:
【中文标题】我可以在 docker 容器中运行 Xcode 吗?【英文标题】:Can I run Xcode in a docker container? 【发布时间】:2015-02-18 02:06:03 【问题描述】:我想 dockerise 一个 Xcode CI 系统,只是想知道这是否可能。
【问题讨论】:
我的猜测是否定的:***.com/questions/2406151/can-you-run-xcode-in-linux 虽然会出错 我怀疑你是对的 可能可以运行 xcodebuild 或 facebook 的 xctool,但是我想你需要用于单元测试的 ios 模拟器将无法使用 我猜这需要 Xcode 命令行工具才能在 linux 上工作(因为 xctool 需要这些来构建项目) 【参考方案1】:这个答案现在可能已经过时了,因为它是在 2015 年写的。它仍然可以作为参考来复制它
--
来自Docker Hackathon 2015 的这个 repo 描述了如何build and run iOS apps with the docker client。这就是你所追求的吗?
观看视频:
https://www.youtube.com/watch?v=CGHOH9Ocl1k秘诀在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/
【讨论】:
以上是关于我可以在 docker 容器中运行 Xcode 吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 Windows 7 上使用 docker-toolbox 运行 Windows 容器吗?
当主机具有 CUDA 9 时,我可以使用 CUDA 10 运行 Docker 容器吗?
我可以在 docker 容器中使用降级的 cuda 版本吗? [关闭]