VSCode-Docker ruft „CMD“ nicht auf

VSCode-Docker ruft „CMD“ nicht auf

Kurz zusammengefasstDas von VSCode erstellte Image führt den CMD-Befehl nur aus, wenn ich in der Docker-Desktop-Benutzeroberfläche auf die Schaltfläche „Ausführen“ drücke.

Hallo Leute,

Ich spiele mit einem Drools-Image zusammen mit Docker Desktop und VSCode herum.

Meine devcontainer.jsonDatei sieht folgendermaßen aus:

{
    "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]
}

Meine Dockerfileist minimalistisch und sieht folgendermaßen aus:

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

Und meine compose.yamlDatei sieht so aus:

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

Das Problem besteht darin, dass, wenn VSCode das Image an Docker Desktop sendet, das CMD ["./start_business-central-wb.sh"]im übergeordneten Image gefundene Element nicht ausgelöst zu werden scheint, wie in den Protokollen zu sehen ist

Docker Kein Run-Bild.PNG

Wenn ich jedoch auf "Ausführen" klicke, wird der Befehl nach dem Erstellen einer neuen Instanz gestartet Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Welches Konzept übersehe ich, warum das Docker-Image nicht sofort ausgeführt wird, wenn VSCode es an Docker Desktop sendet? Ich bin mit beiden Techniken völlig unerfahren.

Jede Hilfe wird sehr geschätzt.

Antwort1

overrideCommandDas Problem war, dass ich es in meiner Datei nicht verwendet habe devcontainer.json. Wenn dieser Wert auf „false“ gesetzt ist, kann das im Container aufgeführte CMD ausgeführt werden.

Die folgende Datei scheint das zu tun, was sie meiner Meinung nach tun sollte.

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

verwandte Informationen