Причина в том, что вы не используете оболочку bash
.Ваш makefile
не использует оболочку Bourne Again (bash
), в которой поддерживается подстановка процессов (<()
), поэтому система выполняет ее с /bin/sh
.Оболочка bourne /bin/sh
по умолчанию предназначена для работы только со стандартными функциями.
Используйте SHELL := /bin/bash
в вашем Makefile
, чтобы сделать оболочку bash
по умолчанию для всех рецептов, или вы можете определить ее для каждого рецепта.
foo: SHELL := /bin/bash
foo:
docker run $(IMAGE_NAME) bash <(curl SOME_URL) \
--some-param1 \
--some-param2
От GNU make
документация: выбор оболочки .Цитирование из него, чтобы показать фактические строки
Программа, используемая в качестве оболочки, взята из переменной SHELL
.Если эта переменная не установлена в вашем makefile
, программа /bin/sh
используется в качестве оболочки