то, что вы пытаетесь достичь, не рекомендуется.как правило, контейнер докера должен запускать один сервис.в результате в Docker нет встроенного способа заставить это работать, хотя все еще возможно, используя скрипт-обертку или такие инструменты, как supervisord , вы можете управлять несколькими службами внутри контейнера-
или что касается документов : (я выбрал опцию supervisord, так как для меня она выглядит более чистой и управляемой, чем сценарий оболочки)
ИспользоватьМенеджер процессов, как руководитель.Это подход средней тяжести, который требует, чтобы вы упаковали супервизор и его конфигурацию в образе (или основали свой образ на том, который включает супервизор) вместе с различными приложениями, которыми он управляет.Затем вы запускаете супервизор, который управляет вашими процессами за вас.Вот пример Dockerfile, использующий этот подход, который предполагает, что предварительно записанные файлы supervisord.conf, my_first_process и my_second_process находятся в том же каталоге, что и ваш Dockerfile.
FROM ubuntu:latest
RUN apt-get update && apt-get install -y supervisor
RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY my_first_process my_first_process
COPY my_second_process my_second_process
CMD ["/usr/bin/supervisord"]
https://docs.docker.com/config/containers/multi-service_container/
то, что вы в настоящее время используете в Dockerfile, называется многостраничная сборка , что на не то, что вы действительно хотите.