【问题标题】:Build docker image with argument in FROM failed使用 FROM 中的参数构建 docker 映像失败
【发布时间】:2020-03-30 18:44:27
【问题描述】:

我想将参数传递给我的 dockerfile。参数应该是 FROM 命令的一部分。所以,我在下面有 Dockerfile:

ARG argument=123
FROM baseImage:$argument

但是当我尝试构建它时,我收到以下错误:

DOCKER> 无法检查图像 [baseImage:$argument]:没有这样的图像:baseImage:$argument:参考格式无效(错误请求:400)

Docker 版本

Client:
 Version:       17.12.1-ce
 API version:   1.35
 Go version:    go1.9.4
 Git commit:    7390fc6
 Built: Tue Feb 27 22:15:20 2018
 OS/Arch:       linux/amd64

Server:
 Engine:
  Version:      17.12.1-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.4
  Git commit:   7390fc6
  Built:        Tue Feb 27 22:17:54 2018
  OS/Arch:      linux/amd64
  Experimental: false

阅读文档我看到这种格式是正确的,但是它不起作用。感谢任何帮助。

【问题讨论】:

    标签: linux docker dockerfile containers fabric8


    【解决方案1】:

    旧版本的 Docker 在FROM 之前不支持ARG。我不记得它更改的确切版本,但我相信支持是在 17.X 行之后添加的。

    【讨论】:

    • 我在某处看到它以高于 17.05 的版本呈现
    • @liotur 他们在 17.05 中添加了多映像构建支持,并且在 FROM 支持之前的 ARG 出现在之后的某个时间,但我不确定它是否在 17.12 版左右。
    • 看这里,我看到了我需要的功能之一 - github.com/moby/moby/releases/tag/v17.05.0-ce
    • 顺便说一句,我也在使用fabric8插件,也许有一个模板dockerfile的选项?
    • 可能是 fabric8 - 您发布的语法对于最新的 Docker 版本绝对有效。我怀疑旧的 Docker 版本或 fabric8 是问题所在。
    【解决方案2】:

    所以问题在于fabric8插件。 描述here

    现在我向 Dockerfile 添加了占位符,并使用 maven-resources-plugin 进行过滤,以便将占位符替换为值。它奏效了。

    【讨论】:

      猜你喜欢
      • 2018-06-02
      • 2019-12-02
      • 2019-12-13
      • 1970-01-01
      • 2020-06-09
      • 2022-09-28
      • 2020-11-02
      • 2022-08-12
      • 1970-01-01
      相关资源
      最近更新 更多