Repo2docker-action: MyBinder 仍然构建映像,而不是拉取它

创建于 2021-03-29  ·  13评论  ·  资料来源: jupyterhub/repo2docker-action

你好,感谢这个非常好的行动!
不确定这是操作的错误还是我使用它的错误。
我过去成功使用过该操作,但目前我无法使用此 repo 使其正常工作: https : https :

所有13条评论

感谢您在此项目中打开第一期! 像这样的参与对于开源项目是必不可少的! :拥抱:

如果您还没有这样做,请查看Jupyter 的行为准则。 此外,请尝试遵循问题模板,因为它可以帮助其他社区成员更有效地做出贡献。
welcome
您可以通过加入我们的Discourse 论坛结识其他Jovyans 。 那里还有一个介绍线程,您可以在那里停下来打个招呼! :海浪:

欢迎来到 Jupyter 社区! :tada:

我知道 Binder 使用 repo2docker,它将扫描您的存储库以查找具有以下构建优先级的配置文件

只需快速查看您的存储库,您似乎还有其他构建文件,它们将向 Binder 发出信号以进行构建,而不是使用您的图像。 我不确定是否有办法告诉 Binder 您想将 Dockerfile 构建为第一要务。 @choldgraf你对此有什么想法吗?

哦,我的道歉有轻微的误解。

看起来您正试图强制 MyBinder 构建图像以强制它缓存图像。 请记住,如果您的仓库有任何额外的提交,缓存就会失效。 此外,这受 MyBinder 缓存容量和规则的影响,这些规则可能会随着时间的推移而改变。

根据我的理解,这与您的形象公开可见完全无关。 我标记了一个对此有更深入了解的朋友。

如果您尝试连续两次使用 mybinder.org 来启动笔记本(不依赖此操作),它是否每次都会构建?

是的 - 活页夹将根据提交哈希重建映像,因此如果您完全更改存储库,即使您没有更改配置文件,也会触发新的构建

我明白了。 不过,我在每次提交时都重新运行此操作。 所以如果我在启动 binder 之前等待 Docker 镜像上传,我是不是应该看到一个几乎即时的启动?

嗯 - 所以 repo2docker 操作只是构建一个图像并将其推送到存储库,它不会专门对 Binder 执行任何操作。 您需要配置一个 Binder 存储库,从repo2docker-action推送的任何位置 _pulls_,并保持静态,以便 Binder 不会每次都重新构建它。

只是为了检查我是否正确理解您的最后一条评论:

  1. 我可以有一个单独的分支/存储库,其中包含environment.yml和推送到包存储库的操作。
  2. 主分支有一个binder/Dockerfile它的唯一内容是FROM repo/package:latest

@choldgraf @robertodr实际上,此操作确实能够将构建直接缓存到 MyBinder.org,但是,如果该操作最终为您创建了提交,则该缓存将立即失效。

我看到您之前使用了错误的标志,并且您应该使用 MYBINDERORG_CACHE https://github.com/ENCCS/veloxchem-workshop/commit/eeb4832cd8f8de1400a0a8fe16b113675dd630b2#diff -3f922dcd49f5cdac8fc8cdbc8fc8cdf8cdf8cdf8cdf8cdf8cdf8cdf8cdf8cdf8cdf85cdb8cdf8cdf8cdf8cdf85c8cdf85c8cdf85cdbcdf8cdf8cdf8c8300000000000

现在有效吗?

MYBINDERORG_CACHE还是BINDER_CACHEMYBINDERORG_TAG ? 现在看起来它正在工作,但很可能是因为我已经连续几次启动了笔记本:facepalm:

@robertodr我会使用自述文件中的这个示例,抱歉意味着标记不是缓存

image

@hamelsmu哇这个动作比我记得的更酷😄

哇,是的,我现在觉得很傻……我想我试图让它将图像推送到 GHCR 并希望它自动在 MyBinder.org 上使用。 然后试图解决这个问题并将选项名称混淆:facepalm:

顺便说一句,使用BINDER_CACHE的尝试也确实有效。 但是,我正在使用的特定存储库使用 LFS 来存储笔记本,并且无法正确检出它们。

太好了! 那我就关闭这个问题。 这对我来说也是一个很好的复习,因为我有一段时间没有看过这个 repo。

此页面是否有帮助?
0 / 5 - 0 等级