VSCode-Docker 未调用“CMD”

VSCode-Docker 未调用“CMD”

总结当我按下 Docker Desktop UI 中的运行按钮时,VSCode 构建的映像仅执行 CMD 命令。

大家好,

我正在使用 Drools 镜像以及 Docker Desktop 和 VSCode。

我的devcontainer.json文件如下所示:

{
    "name": "Existing Dockerfile",
    "build": {
        // Sets the run context to one level up instead of the .devcontainer folder.
        "context": "..",
        // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
        "dockerfile": "../Dockerfile"
    },

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [8001,8080]
}

我的Dockerfile设计很简约,如下所示:

FROM quay.io/kiegroup/business-central-workbench:latest

我的compose.yaml文件如下所示:

services:
  app:
    entrypoint:
    - sleep
    - infinity
    image: docker/dev-environments-default:stable-1
    init: true
    volumes:
    - type: bind
      source: /var/run/docker.sock
      target: /var/run/docker.sock

问题是,当 VSCode 将镜像发送到 Docker Desktop 时, CMD ["./start_business-central-wb.sh"]父镜像中的发现似乎没有被触发,如日志中所示

Docker 未运行镜像.PNG

但是,当我单击“运行”时,命令会在生成新实例后启动 在此处输入图片描述

在此处输入图片描述

为什么当 VSCode 将 Docker 镜像发送到 Docker Desktop 时,Docker 镜像没有立即开始运行?我缺少什么概念?我对这两种技术都非常不熟悉。

任何帮助是极大的赞赏。

答案1

问题是我没有overrideCommanddevcontainer.json文件中使用它。当将此值设置为 false 时,将允许运行容器中列出的 CMD。

下面的文件似乎做了我认为它应该做的事情。

{
    "name": "Debian",
    "image": "quay.io/kiegroup/business-central-workbench:latest",
    "overrideCommand": false
}

相关内容