LINUX.ORG.RU

Докер и wildcards

 ,


0

2

Докер странным образом не резолвит * в аргументах команды:

# docker run -w /etc centos:7.4.1708  ls centos*
ls: cannot access centos*: No such file or directory

При этом

# docker run -w /etc centos:7.4.1708  bash -c "ls centos*"
centos-release
centos-release-upstream

Это баг или фича? И как с ней поступать кроме обертки в bash -c?

Deleted

Если не в кавычках, то символ разворачивает в текущем шелле ДО начала выполнения команды. Это фича.

anonymous ()
Ответ на: комментарий от anonymous

В кавычках-то вообще не работает

# docker run -w /etc centos:7.4.1708  "ls centos*"
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"ls centos*\": executable file not found in $PATH": unknown.
ERRO[0000] error waiting for container: context canceled

Deleted ()
Ответ на: комментарий от Deleted

Я бы не стал на примере докера спорить о феншуе и философии. Работает, и гранд мерси

Deleted ()

Да, это фича

~  >>> sudo podman run --rm -w /etc alpine:edge ls os*
ls: os*: No such file or directory
~  >>> sudo podman run --rm -w /etc alpine:edge sh -c "ls os*"
os-release

stormblastt ★★★ ()
Ответ на: комментарий от stormblastt

ну, формально, это даже правильно. Ведь 'ls os*' - это на языке шелла. А шел у нас может быть разный. Вот и надо указать. sh конечно подойдет лучше баша

Deleted ()

Докер странным образом не резолвит * в аргументах команды:

А должен?

anonymous ()
Ответ на: комментарий от Deleted

Правильное решение это сходить выучить кто раскрывает *.

anonymous ()
Ответ на: комментарий от stormblastt

вот посоветуй, в конторе только начали внедрять докер.
нужно сразу podman или потом смигрировать будет достаточно просто ?

dada ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.