Объединение ENTRYPOINT и CMD в Dockerfile для разных исполняемых файлов
У меня есть Dockerfile, который определяет dotnet
ТОЧКА ВХОДА. Кроме того, у меня есть программа, которая настроена для запуска под supervisor
(с supervisord.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.