docker build 正在覆盖定义的 CMD

docker build is overwriting the defined CMD

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

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

    从/solr:8.9.0

    用户根

    运行 一些命令

    用户 solr

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

我面临的问题是它覆盖了“ContainerConfig”下的“CMD”,下面是代码片段。注意:我正在使用命令“docker inspect”检查这个

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

如果我如下定义CMD

CMD ["solr-前景"]

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

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

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

The issue i am facing is that it is overwiting "CMD" under "ContainerConfig"

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