Объединение ENTRYPOINT и CMD в Dockerfile для разных исполняемых файлов

У меня есть Dockerfile, который определяет dotnet ТОЧКА ВХОДА. Кроме того, у меня есть программа, которая настроена для запуска под supervisorsupervisord.conf определение). Когда контейнер запущен, мне нужно запустить службу супервизора, а также передать несколько аргументов в исполняемый файл ENTRYPOINT. Я не могу объединить ENTRYPOINT и CMD, потому что аргументы CMD не связаны с ENTRYPOINT. Я также хотел бы сохранить ENTRYPOINT для явного переноса контейнера dotnet Отв. Есть мысли о том, как это можно сделать?

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

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

1 ответ

Решение

Похоже, вы хотите запустить два разных сервиса одновременно.
Вы не можете достичь этого через Dockerfile.

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

Другие вопросы по тегам