嘿Circlers(只是完全瞎编)

对于那些不知道的人,我们在CircleCI维护了一批Docker图像,我们称之为便利图像,用于各种语言和数据库。这些映像被设计为在CI环境中良好运行,而不是在生产环境或本地环境中。它们的存在是为了为用户提供一个快捷方便的起点。

与当前/旧映像的问题

我们使用的Docker构建系统既旧又复杂,所以我们一直在设计一套新的映像。我们的14个图像是基于14个独立的、不为CI设计的上游Docker库图像。这给我们和用户带来了令人吃惊的破坏性更改、膨胀的映像和低效的构建系统。

新/下一代图片

我们的新图像从与CI,效率和确定性地上爬起来记建成。下面是一些“亮点”:

  • 更快的“向上”的时间
    • 在多克尔术语中,新的图像趋向于具有更少的层,并且每个层趋于更小。这是由于安装较少的膨胀,只有工具我们的用户最需要,以及以下Dockerfile最佳做法,以使图像高效。总之,使用这些新的影像会导致启动构建时,映像下载速度更快,并且映像已经缓存在主机上的可能性更大
  • 改进的可靠性及稳定性
    • 目前,图像几乎每天都在重建,这是潜在的变化,我们不能总是测试足够快。这对于防止破坏更改的稳定构建来说是不好的。次世代图像只会重建安全和关键错误,导致更稳定,更具有确定性的图像。
  • 自动图像方便文档
    • 这仍然是一项正在进行的工作。的下一代图像生成系统的设计目标是使对于图像的可能性自动文档。这将是很多,很多,在未来更容易理解便利的图像是如何工作的,它们所包含的软件,它的标签是可用的,等等。敬请关注。

公开测试的图片

我们已经达到了“公开测试版状态”更在未来几个月的方式几下一代图像。欢迎您开始使用(如下图),这些图像,并提供您的反馈意见。我们正在寻找的反馈:

  1. 反馈这张图片是否适合你的项目,或者它是否缺失了一些东西,或者在你看来做了一些“错误的”事情。特别是对于“语言映像”,这个映像做的事情违背了社区对特定编程语言的建议。
  2. 这个图像是如何为你工作,如果你从一个等效的传统形象来反馈。
  3. 良好的反馈。这是你完美的工作?让我们知道这一点。
  4. 还有什么你认为你应该增加。

关于这个主题的反馈可以在这里发布,对于特定的图片,可以在公开的beta讨论中发布,对于特定的图片,可以在GitHub中发布。

公开测试图片:

的名字 图片 GitHub 讨论后 笔记
Clojure的 CIMG / Clojure的 链接 链接 Clojure的编程语言。

寻找丢失的图像?CIMG /碱cimg /去CIMG / OpenJDK的CIMG /节点CIMG / PHP,CIMG /锈都已经晋升为GA /稳定。

我们还有4张图片目前处于alpha状态。定期回到这里查看公众测试版程序的更新。在这个主题的底部有一个按钮,你可以“观看”或“跟踪”这个主题。

一切都是开源的,为你设计的。捐款的欢迎。如有任何疑问,请告诉我们,谢谢!

6喜欢

Base和Go图像现在已经提升到GA。他们是稳定的,准备去每个人!

一个帖子被分成了一个新主题:Ruby的图像开始失败对我来说

如果我想提出一个新的图像类型,可以吗?我目前已经建立了一些cimg/base,想知道是否有可能成为一个官方方便的形象

工具:打包机

我们没有计划在这个时候接受第三方的图像,但它的东西,我们正在研究于今年晚些时候。

如果你想创建你自己的圆准备图像,那么你在正确的轨道上,我将它作为基础CIMG /碱就像你说的。这是做到这一点的最好办法。

你能解释一下为什么这会是真的吗?它们会不会仍然有大量不同的图像?

自旋向上的时间往往是一个工作的执行时间有非常大的一部分,所以在这方面的东西很有趣。

当CircleCI构建主机使用Docker执行器启动作业时,将下载Docker映像。基本上搬运工人拉。然后该映像在主机上缓存一段时间。下一代的便利图像被设计为尽可能地从其他图像继承图层,并有较少的变化。概括地说,我们可以从几千张单独的图像到只有几百张。这极大地增加了一个映像可能已经在主机上的机会,这意味着我们可以跳过下载,或者至少大多数层将在主机上,这意味着下载更少。

Q1)什么[R您的Windows dockerfiles计划?我一直在使用Windows上的码头工人,他们似乎很好地工作 - 在Linux和窗口图像。
我对你们的cimg/python感兴趣。我们如何获得Python的正确版本,以及用户如何添加额外的模块,如pytest等。

您可能已经回答这两个问题。如果是这样,URL引用将是有益的。

谢谢

嗨,重大问题。

  1. 目前还没有计划,但我们愿意听取反馈意见。考虑CircleCI有Windows机器/ VM映像的时候,你会希望在Windows上使用泊坞的图像而并非只是使用泊坞执行人或Windows执行人?
  2. Docker标签是图像的版本。因此,举例来说,如果你想使用Python v3.7.7,使用fulle图像:cimg / python: 3.7.7。要安装模块,您可以在本地机器上执行相同的操作。你可以通过安装apt-get的并且你可以通过安装它们皮普

谢谢你的快速反应和保持开放的心态。我将试着从我的角度来回答,并希望有更多的证据来支持它
来自其他用户,等等。

  1. 目前还没有计划,但我们愿意听取反馈意见。…

Windows Dockerfile相对于Windows VM的技术优势与Linux Dockerfile相对于Linux VM的技术优势相同。Docker机器加载速度更快,在Docker Hub中有更多的种类可用等。

此外,微软不收取运行Dockerfiles,和Windows 10 /服务器可以同时运行Linux和Windows的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主机泊坞窗的选择使他们能够最大限度地发挥其初始投资的机器,即使在我们:slight_smile:巧妙地说服他们从长远来看,使用Linux。

最后,通过使用泊坞窗适用于Windows和Linux,平台差异大大减少。对于例如,我使用bash在Windows上,只是因为我喜欢一个CircleCI配置来处理这两个平台。这样的话,我不必使用PowerShell在Windows上,猛砸在Linux上。

在接下来的几个月中,Windows 10将具有WSL(的Windows子系统用于Linux),使同CircleCI配置可能只需要通过坚持Linux的子集适用于Windows上运行Windows和Linux。CircleCI将probaby与Windows的码头工人去与大家方便启用WSL。

  1. Docker标签是图像的版本。…

是的,我找到了解决办法。不过,我原以为应该没有版本中给出,其意图是最新版本,并且我相信CircleCI图像可设置了这种方式。换句话说,CIMG /蟒蛇 - > CIMG /蟒蛇:最新 - > CIMG /蟒蛇:3.8

祝你今天愉快!