![VSCode-Docker не вызывает «CMD»](https://rvso.com/image/782623/VSCode-Docker%20%D0%BD%D0%B5%20%D0%B2%D1%8B%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%20%C2%ABCMD%C2%BB.png)
TL;DRОбраз, созданный с помощью VSCode, выполняет команду CMD только при нажатии кнопки «Выполнить» в пользовательском интерфейсе Docker Desktop.
Привет, народ,
Я экспериментирую с образом 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 не начинает работать немедленно, когда VSCode отправляет его в Docker Desktop? Я совершенно неопытен в обеих технологиях.
Любая помощь будет высоко оценена.
решение1
Проблема была в том, что я не использовал overrideCommand
в своем devcontainer.json
файле. Это значение, если установлено в false, позволяет CMD, указанному в контейнере, выполняться.
Следующий файл, по-моему, делает то, что он должен делать.
{
"name": "Debian",
"image": "quay.io/kiegroup/business-central-workbench:latest",
"overrideCommand": false
}