VSCode-Docker が「CMD」を呼び出さない

VSCode-Docker が「CMD」を呼び出さない

要約VSCode によってビルドされたイメージは、Docker Desktop UI で実行ボタンを押したときにのみ CMD コマンドを実行します。

みんなこんにちは、

私はDocker DesktopとVSCodeと一緒にDroolsイメージを試しています。

私の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

問題は、ファイルoverrideCommandで使用していなかったことですdevcontainer.json。この値を false に設定すると、コンテナーにリストされている CMD を実行できるようになります。

次のファイルは、私が想定しているとおりの機能を果たしているようです。

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

関連情報