我正在尝试简化我的iOS开发构建并阅读有关Docker的信息。
如果我理解正确的话,我可以创建一个包含所有依赖项的映像,而我的其他开发人员只需将其提取并在其中构建即可。
现在要说的是,这是否也适用于Fastlane(使用我认为的Xcode cli工具)和“ Docker for Mac”?
另外,我正在使用React-Native,这似乎开始了第二个过程,用于捆绑将在本机版本中包含的JavaScript,稍后我读到Docker仅允许一个过程,这是问题吗?
使用Docker的问题在于,即使您将Docker用于Mac,也无法访问基于macOS的映像。Docker在名为xhyve的轻型虚拟机中运行-至少如果您通过Docker for Mac软件包安装docker-则可在Mac上运行Linux。
本质上,这意味着您的docker容器将仅限于非Xcode功能。这是您绝对无法做的事情,至少没有不平凡的工作就不会做:
codesign
您可以将Docker容器用于以下用途:
deliver
)match
,cert
,pem
和sigh
)总而言之,您可能会非常有限。相反,建议使用诸如Gemfile
并Brewfile
列出所有依赖项之类的东西,并setup.sh
运行一个小脚本brew bundle
并将bundle install
其安装在同事的计算机上。您还可以将其设置为在构建期间运行它们(使用Xcode的脚本构建阶段),这样就不会有人意外忘记安装构建所需的内容。
话虽这么说,有是对正在制定一个FASTLANE泊坞窗图像这里是也可在泊坞枢纽。请注意,它仅经过过运行fastlane测试的测试(不依赖于仅适用于macOS的软件),因此它实际上并未声称可以可靠地运行fastlane。
我读到Docker只允许一个进程
Docker允许多个进程,但不允许一个以上的主进程。如果您的主进程停止了其他所有操作,并且容器也随之停止了。如果您只想使用它来安装依赖项,以便可以运行使用它们的一次性命令,而不是托管长期运行的服务,则始终可以使用以下命令docker run
:
docker run <repo/image:tag> <your_command>
或者将交互式外壳启动到容器中:
docker run -it <repo/image:tag> /bin/bash
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句