Я бы вообще запихал все в один образ и сделал бы свой entrypoint в котором бы заложил уже некую логику. Передаёшь определённый параметр, получаешь другой функционал.
Приведу пример. У меня есть проект. В нем 4 сущности.
- dB migration
- crawler
- checker
- api
- endpoint
И в зависимости от того какой entrypoint укажешь в docker-compose такой функционал и будет.