CMD и точка входа - это два компонента, которые образ Docker будет делать при запуске. Похоже, вы пытаетесь использовать CMD для запуска службы до запуска вашего приложения. Это не то, что он делает, и я рекомендую вам прочитать об этом здесь: https://docs.docker.com/engine/reference/builder/#cmd. Вместо этого вам нужно взглянуть на способы запуска нескольких служб в одном контейнере.
Ниже приведено краткое описание способов запуска нескольких служб в одном контейнере Docker: https://docs.docker.com/config/containers/multi-service_container/
Часто лучшее, что можно сделать, - это запустить по одному процессу на контейнер, но иногда это неосуществимо, поэтому либо используйте сценарий оболочки для запуска обоих процессов, либо что-то более тяжелое (например, supervisord).
Простой способ использования скрипта (встроенного на той странице документации Docker), который вы делаете точкой входа:
#!/bin/bash
# Start the first process
./my_first_process -D
status=$?
if [ $status -ne 0 ]; then
echo "Failed to start my_first_process: $status"
exit $status
fi
# Start the second process
./my_second_process -D
status=$?
if [ $status -ne 0 ]; then
echo "Failed to start my_second_process: $status"
exit $status
fi