2

请参阅随附的图像。在我的 CoreOS 机器上,Docker bulid 有一个标志 -f(文件),它允许您指定一个不名为“Dockerfile”的 dockerfile 来创建构建。例如,当我尝试在 CircleCI 上调用“Docker -f Dockerfile-dev”时,它会因“提供但未定义的标志:-f”而失败。在随附的图像中,您可以看到 -f 标志对于 CircleCI 上的 Docker 实例是未知的。有没有办法解决这个问题,或者“Dockerfile”是用于 CircleCI 构建的 dockerfile 的必需名称?在此处输入图像描述

4

2 回答 2

3

这是我从 CircleCI 得到的答案:

我们已经构建了可以在 CircleCI 上运行的 Docker 1.5 和 1.6,但它们还没有在我们的容器中。现在你可以开始使用 Docker 1.5 或 1.6,如果你将它添加到你的 circle.yml 中,例如在依赖项中:pre 部分:

curl -L -o /usr/bin/docker 'http://s3-external-1.amazonaws.com/circle-downloads/docker-1.5.0-circleci'; chmod 0755 /usr/bin/docker; true

或者

curl -L -o /usr/bin/docker 'http://s3-external-1.amazonaws.com/circle-downloads/docker-1.6.0-circleci'; chmod 0755 /usr/bin/docker; true

如果您在手动启动 docker 时执行此操作,则需要从服务部分中删除 docker。

默认情况下,我们将很快将 1.5 和 1.6 添加到我们的构建容器中,因此在接下来的几周内应该不再需要这种 hack。

于 2015-05-28T13:05:11.847 回答
2

docker build -f是 Docker 1.5 的一个特性(参见PR 9707

CircleCI 尚未集成 docker 1.5。

请参阅常见问题解答

在我们的环境中运行 Docker 1.5 需要自定义补丁,我们需要彻底测试补丁版本,然后才能在我们的容器中使用它。
请密切关注我们的变更日志,以便在 Docker 1.5 默认开始与我们的构建容器一起发布时收到通知。

2015 年 6 月:尽管更新日志中还没有提到,但现在可能支持 Docker 1.6,意思docker build -f是支持。

于 2015-05-27T17:31:52.777 回答