И это всё МОЁ

Добрый день, прошу совета как организовать процесс разработки, некоего компилируемого приложения, например на плюсах.
У приложения есть зависимости, которые нужно сохранить как для develop версии так и для production.
Develop версия должна еще содержать разные утилиты, такие как valgrind, dbg и т.п

1. Создаем общий образ:

FROM ubuntu
# установка gcc как пример некой зависимости для приложения
# в реальном проекте там будут библиотеки и т.п
RUN apt install gcc

билдим его:

docker build -t common_image .

2. Дальше нам нужен develop образ:

FROM common_image
# ставим утилиты для разработки
RUN apt install valgrind

В develop версии нам надо править исходный код, для этого нужно подключать тома, тут как я понял удобно использовать будет docker-compose:

# docker-compose.develop.yml
version: "3"
services:
develop:
build: ./develop
volumes:
- ./src:/src

Для разработки выполняем команду:

docker-compose -f docker-compose.develop.yml run -it develop bash

Попадаем в контейнер в котором можем пересобирать приложение и использовать отладочные утилиты.

3. Для релиза создаем production образ:

FROM common_image
# с хост машины копируем исходники в новый контейнер
COPY ./src ./src
# собираем приложение из исходников
# опускам моменты с созданием WORKDIR и прочего
RUN make

так же билдим этот контейнер:

docker build -t release_image .

Отправляем его на боевой сервер (или через push/pull) и там запускам с помощью docker-compose:

version: "3"
services:
develop:
image: release-image
command: ./run_app
volumes:
# тома для настроек
- ./settings:/settings
restart:
always

Оправдан ли такой способ? Сам с докером только начал разбираться поэтому прошу совета у опытных людей, заранее благодарен.