Если у вас нет зависимостей для отслеживания , Make, вероятно, не тот инструмент.
Make запускает одну оболочку для каждой команды (или для правила в некоторых версиях), если вам нужно настроить оболочку, вам нужно будет настроить каждый экземпляр.
Процесс не может изменить своего родителя. Поэтому, если вы хотите, чтобы Make изменил оболочку, в которой он был запущен, это невозможно без использования того же трюка, что и docker.
Поскольку $
интерпретируется Make, чтобы передать его оболочке, его необходимо экранировать.
Вот структура, которая могла бы быть работоспособной (обратите внимание, что я объединяю правила в одну команду), но опять же, я не думаю, что Make - правильный инструмент для такого рода вещей, и я ничего не знаю о докере, поэтому могу пропустить что-то актуальное.
начало:
@sh run.sh -d; \
echo $$ (docker-machine env dev)> ./docker-config
start-compose:
@eval $$ (cat ./docker -config); \
docker-compose up -d
clean:
@eval $$ (cat ./docker-config); \
docker-compose rm --force
stop:
@eval $$ (cat ./docker-config); \
docker-compose stop
выключение:
@eval $$ (cat ./docker-config); \
остановка компоновки докеров; \
docker-machine stop dev
Почти верно; вы должны использовать номер прохода 2 (, поскольку это не корневая файловая система ), и это действительно должно быть шестое поле, поэтому
UUID=6f8debb3-aac9-4dfb-877f-463f5132d055 /grid/sdb ext4 defaults,noatime 0 2
UUID=203c24b2-8c07-4a9a-b4e0-1848ac5570d6 /grid/sdc ext4 defaults,noatime 0 2
UUID=941546ac-2168-4130-b51f-f5a255a4e43c /grid/sdd ext4 defaults,noatime 0 2
|<-------------- field 1 -------------->| |<- 2 ->| |<>| |<- field 4 -->| ^ ^
^ | |
field 3 -+ field 5 -+ |
field 6 -+