Объединение ENTRYPOINT и CMD в Dockerfile для разных исполняемых файлов - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть Dockerfile, который определяет dotnet ENTRYPOINT.Кроме того, у меня есть программа, настроенная для работы под supervisor (с определением supervisord.conf).Когда контейнер запущен, мне нужно запустить службу супервизора, а также передать несколько аргументов в исполняемый файл ENTRYPOINT.Я не могу объединить ENTRYPOINT и CMD, потому что аргументы CMD не связаны с ENTRYPOINT.Я также хотел бы сохранить ENTRYPOINT, чтобы явно иметь контейнерную оболочку dotnet exec.Любые мысли о том, как это можно сделать?

Я знаю, что мой сценарий работает полностью, так как я могу подключиться к работающему контейнеру и запустить службу supervisor.

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
…
FROM base AS final    
ENTRYPOINT ["dotnet", "BLAH.dll"]
CMD ["service", "supervisor", "start"]

1 Ответ

0 голосов
/ 07 февраля 2019

Похоже, вы хотите запускать две разные службы одновременно.
Вы не можете добиться этого с помощью файла Dockerfile.

Я предлагаю вам создать скрипт для запуска обеих служб.
И использовать этот скрипт в вашем CMD или ENTRYPOINT в Dockerfile.

...