Одним из решений может быть использование сценария docker-entrypoint.sh.По сути, эта точка входа позволит вам определить набор команд для запуска вашей программы.
Например, я мог бы создать следующий docker-entrypoint.sh:
#!/bin/bash
set -e
if [ "$1" = 'app' ]; then
sh /run-my-other-file.sh
exec python app.py
fi
exec "$@"
И я бы использовал его так же, как в моем Dockerfile:
FROM alpine
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["app"]
ТамЕсть много статей и примеров в Интернете о Docker-точки входа.Вы должны быстро его найти. Я уверен, что вы найдете много интересных примеров, которые используются в известных контейнерах производственного класса.