Как использовать docker исполняемый файл самой высокой версии, установленной nix в bash? - PullRequest
0 голосов
/ 11 марта 2020

Через nix На моем локальном компьютере установлено несколько docker исполняемых файлов.

Вот пример:

/nix/store/dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4/bin/docker
/nix/store/dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4/libexec/docker
/nix/store/dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4/libexec/docker/docker
/nix/store/dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4/share/bash-completion/completions/docker
/nix/store/fhhly0rgbygghhfmwmdkacrh6cvg6hvg-user-environment/bin/docker
/nix/store/fhhly0rgbygghhfmwmdkacrh6cvg6hvg-user-environment/libexec/docker
/nix/store/fhhly0rgbygghhfmwmdkacrh6cvg6hvg-user-environment/share/bash-completion/completions/docker

Я хочу иметь возможность повторно использовать docker установлено nix для моей работы разработчика. Одна из причин заключается в том, что внутренний набор инструментов опирается на конкретную версию docker. Если я установлю Docker for Mac, я столкнусь с исключением во время выполнения.

Есть ли хитрый прием командной строки nix, чтобы я мог получить путь к самой высокой версии docker? Например, в приведенном выше примере я хочу использовать исполняемый файл docker в dbq6mzbsgwv1rnzc52qjbaf33gsfn51z-docker-19.03.4. В идеале я хотел бы использовать что-то вроде $(nix find-path docker)/bin/docker для вызова 19.03.04 docker.

Я пытался nix run docker или nix dump-path docker, но, конечно, они не являются правильными подкомандами.

Я хочу избежать сохранения другой переменной BASH для хранения жестко закодированного пути до 19.03.04 docker, потому что мой проект может время от времени обновлять docker среды выполнения.

...