2015-05-27 56 views
2

查看所附图片。在我的CoreOS框中,Docker bulid有一个标志-f(文件),它允许您指定一个未命名为“Dockerfile”的dockerfile来创建构建。当我尝试在CircleCI上调用“Docker -f Dockerfile-dev”时,它会失败,并显示“提供但未定义的标志:-f”。在封闭的图片中,您可以看到CircleCI上的Docker实例未知-f标志。有没有办法解决这个问题,或者是“Dockerfile”用于CircleCI构建的dockerfiles所需的名称? enter image description here是否可以在CircleCI中使用未命名为“Dockerfile”的Dockerfile?

回答

2

docker build -f是从1.5泊坞的特征(参见PR 9707

CircleCI尚未集成搬运工1.5。

See the FAQ

运行多克1.5在我们的环境需要自定义补丁,我们需要使其成为我们的容器可用之前彻底测试补丁的版本。
请注意our changelog在Docker 1.5默认开始随我们的构建容器一起发货时会立即得到通知。

2015年6月:即使更改日​​志尚未提及,现在可能支持Docker 1.6,也就是说支持docker build -f

3

下面是我从CircleCI得到了答案:

我们已经有了建立泊坞窗1.5和1.6,可以在CircleCI运行的,但他们没有在我们的集装箱。现在你可以开始使用多克1.5或1.6,如果您添加到您的circle.yml,例如在依赖关系:前期部分:

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。

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

+0

良好的反馈,这与我在回答中已经提到的内容相呼应。 +1 – VonC

+0

在我的'dependencies.override'步骤中有了上述解决方法,我在随后的'docker run'命令中得到这个错误:“FATA [0000]发布http:///var/run/docker.sock/v1。 16/containers/create:dial unix /var/run/docker.sock:没有这样的文件或目录。你是否试图连接到启用TLS的守护进程而不使用TLS?“ –

+0

@JørnSchou-Rode我得到了同样的错误,这是Circle告诉我要做的事情,我测试了它,它可以工作:请问在curl命令之前添加sudo?这将确保安装较新的Docker版本(在链接到最后安装步骤的构建中失败)。 另外,安装Docker后需要启动Docker守护进程,因此请在安装新Docker版本后添加sudo服务docker start。 – alberto56