【问题标题】:Is ignoring Dockerfile in '.dockerignore' not allowed?是否允许忽略“.dockerignore”中的 Dockerfile?
【发布时间】:2019-01-22 10:14:56
【问题描述】:

(注意:这似乎与 Jenkins 无关,但标记它只是以防万一)

我正在使用 Jenkins Docker 插件来构建我的 docker 镜像,但是我的构建失败并出现以下异常:Dockerfile is excluded by pattern 'Dockerfile' in .dockerignore file

com.github.dockerjava.api.exception.DockerClientException: Dockerfile is excluded by pattern 'Dockerfile' in .dockerignore file
   at com.github.dockerjava.core.dockerfile.Dockerfile$ScannedResult.<init>(Dockerfile.java:184)
   at com.github.dockerjava.core.dockerfile.Dockerfile.parse(Dockerfile.java:111)
   at ...

看起来它使用了docker-java

在检查源代码时,如果此处忽略 Dockerfile,似乎会引发异常:Dockerfile.java:L185

那么忽略 Dockerfile 是不允许的吗?为什么?

【问题讨论】:

  • 你在什么操作系统上运行?

标签: java docker jenkins dockerfile


【解决方案1】:

支持忽略 Dockerfile,但并非总是如此。来自current documentation

您甚至可以使用 .dockerignore 文件来排除 Dockerfile 和 .dockerignore 文件。这些文件仍然被发送到守护进程,因为 它需要他们完成它的工作。但是 ADD 和 COPY 指令没有 将它们复制到图像中。

早在1.5.0(2015-02-10 发布)中添加了对此的支持:

Dockerfile 和 .dockerignore 文件本身可以作为一部分排除在外 .dockerignore 文件,从而防止修改这些 使 ADD 或 COPY 指令缓存无效的文件

【讨论】:

    【解决方案2】:

    docker 支持从.dockerignore 中排除Dockerfile,但这是docker-java 库中的一个错误,请参阅问题:https://github.com/docker-java/docker-java/issues/1141

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多