嘿圈子(刚刚完全做到了),

对于那些不知道的人来说,我们在Circleci维护了一段我们称之为各种语言和数据库的便利图像的船队。这些图像旨在在CI环境中运行良好,而不是生产或本地环境。它们存在作为用户的快速方便的起点。

当前/遗留图像的问题

我们正在使用的Docker构建系统陈旧而且复杂,所以我们一直在设计新的图像套件。我们的14张图像基于14个,单独的上游Docker库图像,该图书馆图像并不设计为CI。这引起了我们和用户,臃肿的图像和效率低下构建系统的惊喜变化。

新/下一代图像

我们的新图像是由CI,效率和决定论的基础构建。这是一些“亮点”:

  • 更快的“旋转”时间
    • 在Docker术语中,新图像倾向于具有较少的层,并且每层趋于更小。这是由于安装较少的膨胀,只有大多数用户的工具都需要,以及追随Dockerfile最佳实践来进行图像效率。简而言之,使用这些新图像将导致更快的图像下载构建启动时,图像已在主机上缓存的更高可能性
  • 改善可靠性和稳定性
    • 目前图像每天都重建图像,这是从上游的潜在变化,我们不能总是足够快测试。这对于防止破坏变化的稳定构造并不好。下一个Gen图像只会重建用于安全性和严重错误,导致更稳定,更确定的图像。
  • 自动方便图像文档
    • 这仍然是一项正在进行的工作。下一个Gen Image构建系统正在旨在为图像进行自动化文档。在未来将更容易了解便利图像的工作,它们包含的软件是多么简单,它们包含哪些标签,更多。敬请关注。

公共测试版图像

我们有一些下一代图像,在接下来的几个月里,更多地达到了“公共测试版状态”。欢迎您开始使用这些图像(下面)并提供您的反馈。我们正在寻找的反馈:

  1. 反馈意见如果此图像为您的项目工作,或者如果它缺少某些东西或在您的意见中做某事。特别是对于“语言图像”,这是针对这种特定编程语言的社区建议做的事情。
  2. 如果您来自同等的遗留图像,请提供有关此图像如何为您工作的反馈。
  3. 良好的反馈。这是适合你的吗?让我们也知道。
  4. 别的什么你认为你应该添加。

在此主题上发布了反馈,公共Beta circleci讨论特定图像的主题,或者在特定图像的Github问题中讨论主题。

公共测试版图片:

名称 图像 GitHub. 讨论帖子 笔记
Clojure. cimg / clojure. 关联 关联 Clojure编程语言。

寻找缺失的形象?CIMG /基地CIMG / GOCIMG / OPENJDK.CIMG / nodeCIMG / PHP., 和Cimg / Rust.所有人都被晋升为GA /稳定。

我们有4个图像目前处于alpha状态。请定期查看此处以获取公共测试项目的更新。本主题底部有一个按钮,您可以在其中“观看”或“追踪”这个主题。

一切都是开源,为您设计。欢迎贡献。任何问题,请告诉我们,谢谢!

6喜欢

现在已经促使了基地和去图像促进了GA。他们是稳定的,准备去找每个人!

一个帖子被拆分给一个新主题:红宝石图像开始对我失败

如果我想提出新的图像类型,那是可能的吗?我目前已经建造了CIMG / BASE的东西,想知道是否有可能成为一个官方的便利形象

工具:包装机

我们目前没有计划接受第三方图像,但这是我们今年晚些时候在今年晚些时候进行的东西。

如果您想创建自己的Circleci-Ready Image,那么您就在正确的轨道上,我会把它归结为CIMG /基地就像你说的那样。这是最好的方法。

你能解释为什么这将是真的吗?不会有大量不同的图像吗?

旋转时间往往是工作执行时间的一大部分,所以这个领域的任何东西都很有趣。

当Circleci Build Host使用Docker Executor启动作业时,下载Docker映像。基本上是A.Docker Pull.。然后,此图像保持在主机上缓存为设定时间。下一步便利性图像被设计为随时从其他图像继承层,并且在那里的变化较少。要概括一下,我们会发生什么,我们可以从数千个个别图像到几百个。这大大增加了图像可能已经在主机上的可能性,这意味着我们可以跳过下载,或者至少大多数层将在主机上,这意味着较少下载。

Q1)你对Windows Dockerfiles的计划是什么?我一直在Windows上使用Docker,他们似乎很好地工作 - 两个Linux和窗口图像。
Q2)我对你的CIMG / Python感兴趣。我们如何获得Python的正确版本,用户可以为添加其他模块,例如PyTest等。

您可能已经有两个问题的答案。如果是这样,URL引用会有所帮助。

谢谢

嗨,很棒的问题。

  1. 没有立即计划,但我们开放反馈。考虑circleci具有Windows Machine / VM Images,您需要在Windows上使用Docker映像,然后只使用Docker Executor或Windows executor?
  2. Docker标记是图像的版本。因此,例如,如果要使用Python v3.7.7,则使用ulerle映像:CIMG / PYTHON:3.7.7。要安装模块,您可以在本地计算机上执行相同的操作。您可以通过apt-get.你可以通过pip

感谢您的快速响应,并保持开放的思想。我会尝试从我的角度来回回答,并希望更多的证据支持它
来自其他用户等。

  1. 没有立即计划,但我们开放反馈。......

Windows VM上的Windows Dockerfile的技术优势与Linux VM上的Linux Dockerfile相同。Docker Machines负载更快,码头毂等有更多种类的可用性。

此外,Microsoft不收取运行DockerFiles,Windows 10 / Server可以同时运行Linux和Window DockerFiles。

例如,Circleci/Windows@2.2.0也有VS 2019安装,即使没有办法运行到GUI IDE。VS2019社区是免费的,但安装需要大量的空间,通常需要构建/测试机器。笨重的方式是使用VS2019构建工具或Windows / Linux Dockermcr.microsft.com/dotnet/core.

支持Windows DockerFiles的业务原因是吸引更多Windows客户使用Circleci。许多软件公司支持Linux和Windows,因此允许它们在Linux或Windows中选择托管Docker,使其能够最大限度地提高其初始机器投资,即使我们:least_smile:巧妙地说服他们长期使用Linux。

最后,通过使用Windows和Linux的Docker,平台差异会降低。例如,我仅仅因为我更喜欢一个Circleci配置来处理两个平台的窗户上使用Bash。这样,我不必在Windows上使用PowerShell,Bash在Linux上。

在未来几个月内,Windows 10将拥有WSL(Windows Subsystem for Linux),因此可以通过粘贴到适用于Windows的Linux子集来运行Windows和Linux的相同Circleci配置。Circleci将Propaby与Windows Dockers一起使用,为方便地启用WSL。

  1. Docker标记是图像的版本。......

是的,我发现了解决方法。但是,我认为不应该给出任何一个版本,意图是最新版本,我认为Circleci图像可以以这种方式设置。换句话说,cimg / python - > cimg / python:最新 - > cimg / python:3.8

祝你今天过得愉快!