【问题标题】:docker build is overwriting the defined CMDdocker build 正在覆盖定义的 CMD
【发布时间】:2023-03-11 06:15:02
【问题描述】:

我正在尝试对现有的 docker-image 进行如下更改。

  1. 创建一个包含以下内容的 Dockerfile

    来自 /solr:8.9.0

    用户根

    运行一些命令

    用户解决方案

  2. 使用以下命令构建映像 docker build -t /solr:8.9.0.2 .

我面临的问题是它在“ContainerConfig”下过度使用“CMD”,下面是sn-p。注意:我正在使用命令“docker inspect”进行检查

    "ContainerConfig": {                      "ContainerConfig": {
      ….                                                   ….
      ….                                                   ….
        "Cmd": [                                        "Cmd": [
            "/bin/sh",                                      "/bin/sh",
            "-c",                                           "-c",
            "#(nop) ",                                      "#(nop) ",
            "CMD [\"solr-foreground\"]"                     "USER solr"
                   ],                                                   ],

如果我将 CMD 定义如下

CMD ["solr-foreground"]

然后不是在“ContainerConfig”部分中覆盖,而是在“Config”的单独部分下写入:{ 观察到的输出也如下所示

        "Cmd": [
            "/bin/sh",
            "-c",
            "[\\\"solr-foreground\\\"]"
        ],

如果我尝试启动 kubernetes 图像,它会进入崩溃循环。

【问题讨论】:

  • 您有一个空的 RUN,并且 FROM 和 docker build 行的图像引用包含无效的前导 /ContainerConfig 也可能被忽略,您应该查看 Config 中的值。
  • @BMitch 我的运行命令不是空的,我已经编辑了帖子以纠正相同的问题。请你再看一遍好吗

标签: docker dockerfile


【解决方案1】:

我面临的问题是它在“ContainerConfig”下覆盖了“CMD”

这不是问题。这只是显示用于创建最后一层的临时图像的一些内部结构。运行时启动容器时不使用它。相反,您应该查看“配置”部分。

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多