Вы можете продолжать использовать исходное изображение: загрузите сценарий установки в контейнер в качестве конфигурации (используя длинное определение формы, чтобы вы могли установить разрешение на выполнение), а затем переопределите точку входа на запустите ваш скрипт (который, вероятно, должен запустить оригинальный скрипт точки входа после его завершения). Так что-то вроде:
mysql:
image: mysql:latest
expose:
- 3306
volumes:
- database_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: project
MYSQL_USER: project
MYSQL_PASSWORD: project
configs:
- source: ./OverrideScript.sh
target: /OverrideScript.sh
#0777 will work too, but you can't write to it either way
mode: 0555
entrypoint: /OverrideScript.sh
Другие ответы верны, что «правильный» способ - создать свой собственный образ. Но TBH, если ваш скрипт переопределения является относительно небольшим и легким, обходной путь не так уж и плох, и он избавляет вас от необходимости перестраивать свой собственный образ каждый раз, когда MySQL выпускает новый образ.