问题标签 [dockerhub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 用于 _failed_ 构建的 docker hub webhook?
我在 docker hub 上设置了几个自动构建。我看到我可以设置一个 webhook 以在成功构建时发布到 URL,但是通知构建失败似乎更有用。有没有办法做到这一点?
我尝试添加一个 webhook,然后将故意错误的 RUN 指令推送到我的 Dockerfile。自动构建按预期失败,但没有任何内容发送到我的 webhook。
我的一些构建不是由 git 推送而是由 cron 作业触发的,所以即使我在每次提交之前测试了构建,它也不会捕捉到这种情况。由于更改通过 ADD 下载的 URL 的内容,一天成功的构建可能会在下一天失败。
那么......有没有办法获得自动构建失败的通知?如果没有,请将此视为功能请求。
docker - Docker Hub 无密码登录
所以,我想弄清楚一些事情,到目前为止我还没有看到任何东西。
我设置了一个 docker hub 帐户,我想从 CI 服务器推送到一个私有仓库,并从它拉到生产中的盒子上。
不过,据我所知,唯一的方法是访问每台机器并输入我的密码,与我用于 Web 登录的密码相同。
这不可能吧?有什么我错过的吗?
docker - docker pull 和 docker build from Dockerfile 的优缺点是什么?
我已经和 docker 一起玩了大约一个月,现在我有一些图像。最近,我想与其他人分享其中的一个,然后我将那个图像 X 推送到我的 DockerHub,以便他可以从我的存储库中提取它。
然而,这似乎有点浪费时间。这里花费的总时间是我做 docker push和他做 docker pull 的时间。如果我只是向他发送构建该映像 X 所需的 Dockerfile,那么成本将是 我编写 Dockerfile的时间、传递文本文件的时间以及他执行 docker build 的时间,这比以前的方式要少,因为我维护好我的 Dockerfiles。
所以,这是我的问题:这两种方法的优缺点是什么?为什么 Docker Inc. 选择推出 DockerHub 服务而不是 DockerfileHub 服务?
任何建议或答案将不胜感激。非常感谢!
git - Dockerhub 自动构建多个私有仓库
有没有办法在自动 dockerhub 构建期间连接到多个私有 git 存储库?我们正在构建 golang 应用程序,需要“去获取”其他私有仓库作为我们构建的一部分,目前它们失败了,因为 docker 无法连接到它们,只有目标私有仓库。
主仓库很好,因为部署密钥是通过 Dockerhub 安装的,但是任何后续的私有仓库导入都会失败。
我可以看到解决此问题的一种方法是在本地构建映像,将其“docker push”到 dockerhub,然后在部署端将其拉下,这违背了 dockerhub 和自动构建系统的目的。另一种是将 ssh 密钥烘焙到基础映像中,这不是一个好主意。
有没有人对此有不涉及将 ssh 密钥烘焙到图像或在本地构建的解决方案?
非常感谢。
docker - 将 docker 映像推送到新的 docker hub 帐户失败
我需要更改将图像推送到的 Docker Hub 帐户。我曾经docker login
更新我的.dockercfg
文件,然后运行以下命令(account
, image
,并tag
充当我的实际值的通用占位符):
docker push account/image:tag
我立即收到以下错误:
我正在尝试推送到 docker hub 上的私有存储库,但我已经仔细检查了我的身份验证是否匹配。为什么会失败,我该如何解决?
docker - 将私有存储库推送到 Docker Hub 失败:上传元数据时出现 HTTP 代码 504
我正在尝试将私有存储库推送到 Docker 集线器,但我反复收到以下错误:
上传元数据时的 HTTP 代码 504:无效字符 '<' 寻找值的开头
这个仓库之前推送成功过。但是今天它以这个错误结束。我怎样才能成功推送它?
更新
经过大约 10 次尝试,它终于推动了。我想知道是什么导致了这些失败。
docker - 是否可以自动构建 docker 标签?
我想在每次提交时将 docker 映像版本化为 master 或每当我创建新的 git 标签时。是否可以使用他们的自动 Docker 注册表?到目前为止,我只能在特定的分支上找到构建,但我找不到任何方法来告诉 DockerHub 在我推送新的 git 标签时创建新的 docker 标签
deployment - Docker build/push 每次 - 持续部署是否实用?
如果您每天部署 5-10 次,那么每次部署时完全重建和推送 docker 映像是否真的可行?
我承认 CircleCI 的Docker 持续集成和交付中提到的好处,即:
请注意,Elastic Beanstalk 还允许您部署 Dockerfile 和关联的源代码而不是构建的映像,但是在 CircleCI 上预先构建映像并对其运行某种形式的验证可以让您的部署更具确定性,因为您删除了构建环境作为测试和生产之间不同的变量。
但是,一旦包含所有依赖项和源代码,我们完全构建的 webapp 映像接近 1GB。我只是不明白部署高达 200GB/月(即每天 10 次提交,持续部署)的实际情况,实际上 99% 的数据在构建之间没有变化。即,它可能只是价值 1k 的 HTML、JS 或 CSS 被更改以添加功能。我更喜欢一种方法,其中 docker 映像包含很少更改的软件,其余的作为捆绑包的一部分被压缩。这仍然会产生一个独立的部署文件(不需要下载进一步的依赖项),但会大大减少构建时间和带宽。
docker - 推送到 docker 公共存储库时是否需要手动标记“最新”?
假设我有一张图片me/mystuff:v0.0.1
我发现如果我将它推送到存储库:
latest
没有创建,并且从另一台机器上拉它会抱怨,例如
将导致未找到错误me/mystuff:latest
我可以添加最新的标签并明确推送到公共存储库:
然后从另一台机器:
将工作,因为最新的存在。
我还发现,一旦最新版本存在,推送新编号版本时它不会自动更新。
我可以以某种方式消除手动标记最新的步骤并让最新自动指向最新的编号版本吗?
还是因为某种原因,例如允许将开发版本(仅标记为 vN.NN)与生产版本(标记为最新)分开?
docker - Docker 存储库到底是什么?
我似乎无法找到 Docker 存储库的确切定义。标记的一般方法似乎是用户名/图像名。
当然,它包含 Docker 镜像,但是它们需要是同一镜像的不同版本还是可以是不同的 Docker 镜像?
例如,我是否可以将 App1、App2、... 保留在同一个 Docker 存储库中,并且只使用标签来区分它们。