
要約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"]
親イメージで見つかったものがログに見られるようにオフになっていないように見えることです。
しかし、「実行」をクリックすると、新しいインスタンスを生成した後にコマンドが開始されます。
VSCode が Docker イメージを Docker Desktop に送信したときに、Docker イメージがすぐに実行を開始しない理由について、私が見逃している概念は何でしょうか? 私は両方の技術についてまったく経験がありません。
どのような助けでも大歓迎です。
答え1
問題は、ファイルoverrideCommand
で使用していなかったことですdevcontainer.json
。この値を false に設定すると、コンテナーにリストされている CMD を実行できるようになります。
次のファイルは、私が想定しているとおりの機能を果たしているようです。
{
"name": "Debian",
"image": "quay.io/kiegroup/business-central-workbench:latest",
"overrideCommand": false
}