Причина, по которой вы запутались, заключается в том, что проблема цитирования не связана с тем, что вы делаете. Это связано с оболочкой.
Как всегда при написании make recipes, вы должны в первую очередь убедиться, что вы можете запустить команду из командной строки, и она сделает то, что вы хотите. Только после этого вы должны положить его в рецепт. В вашем случае предположим, что вы запускаете это в командной строке:
docker run \
--rm \
-t \
--env SRC="/mypath" \
ubuntu:xenial \
/bin/bash -c "echo $SRC"
Это не сработает. Почему бы и нет? Потому что оболочка раскроет все переменные в двойных кавычках, прежде чем вызовет команду. Это означает, что ваша команда docker фактически получает это в качестве аргументов:
docker run \
--rm \
-t \
--env SRC="/mypath" \
ubuntu:xenial \
/bin/bash -c "echo "
потому что оболочка раскрывает переменную $SRC
, которая пуста (она не будет установлена до запуска docker, но это расширение выполняется оболочкой до запуска docker).
Вам нужно использовать одинарные кавычки, чтобы оболочка не расширила вашу переменную:
docker run \
--rm \
-t \
--env SRC="/mypath" \
ubuntu:xenial \
/bin/bash -c 'echo $SRC'
Теперь вы сможете заставить свой рецепт make-файла работать так, как вы ожидаете.