Vladislav 👻
почему ты не делаешь тоже самое в ansible?
Andor
Andor
Andor
зачем ансибль из этой строки делает список - загадка
Vladislav 👻
ты строку не выделил
Andor
в смысле?
Andor
это и есть строка лол
Andor
- '/tmp/hello slash cyberpunk'
Andor
это строка?
Andor
эта запись аналогична
- /tmp/hello slash cyberpunkдобро пожаловать в yaml
Andor
эти записи идентичны с точки зрения yaml
Vladislav 👻
она не аналогична вот этой: docker run -v /tmp:/tmp ubuntu:18.04 'touch' '/tmp/hello world'
Andor
аналогична
Vladislav 👻
окей
Andor
Vladislav 👻
питоном принтани as is и посмотри
Andor
ты блин прикалываешься что ли
Andor
ты либо с докером не работал, либо с ямлем, либо я хз ваще
Vladislav 👻
как скажешь
Vladislav 👻
пиши багрепорт, а я домой
Andor
питоном принтани as is и посмотри
andor@titude:~/tmp$ python3 -c 'import yaml; print(yaml.safe_load(open("testme.yaml"))[0]["tasks"][0]["block"][1]["docker_container"]["command"]);'
['touch', '/tmp/hello slash cyberpunk']разумеется это список, я умею пользоваться yaml'ем
Vladislav 👻
подставь свой список в docker run 😬
Andor
что?
Vladislav 👻
принтани значение своего списка, а не сам список
Andor
что?
Andor
а я по-твоему что вывел? ссылку на список что ли?
Vladislav 👻
ты вывел список в форматированном выводе списка от питона
Vladislav 👻
выведи как результат свой список
Andor
результат чего?
Andor
Vladislav 👻
бля
Vladislav 👻
в конце поставь еще один [0]
Vladislav 👻
точнее [1]
Andor
нафига?
Vladislav 👻
ибо нас второй параметр интересует
Andor
очевидно же что он выведет
Andor
он же не дурак превращать строку в список когда его не просят
Andor
я не понимаю что ты мне хочешь сказать
Vladislav 👻
для тебя не очевидно, раз ты такое считаешь багом
Vladislav 👻
ВЫВЕДИ!
Vladislav 👻
и подставь это значение в docker run
Vladislav 👻
и посмотри на результат
Andor
andor@titude:~/tmp$ python3 -c 'import yaml; print(yaml.safe_load(open("testme.yaml"))[0]["tasks"][0]["block"][1]["docker_container"]["command"][1]);'
/tmp/hello slash cyberpunk
Andor
(очевидно)
Andor
но ради тебя вывел
Vladislav 👻
отлично
Vladislav 👻
какой результат будет от такого значения?
Andor
результат чего?
Vladislav 👻
результат выполнения контейнера
Vladislav 👻
через docker run руками
Andor
я это уже делал, результат показывал
Andor
Vladislav 👻
нет
Vladislav 👻
там у тебя одинарные кавычки
Andor
что "нет"?
Vladislav 👻
тут их нет
Andor
конечно, это же строка с пробелами
Vladislav 👻
БЛЯ КЭП!
Andor
она интерпретируется ШЕЛЛОМ как разные строки
Vladislav 👻
тогда с чего баг, если ты пишешь строку с пробелами?
Andor
алё, шеллом
Andor
не докером
Andor
шеллом
Andor
шелл разбивает на строки по пробелам
Andor
не докер
Andor
не ямль
Andor
не питон
Andor
а в моём кейсе - ансибль делает это же
Andor
(либо питоновский дравер, но вряд ли)
Vladislav 👻
окей
Anonymous
Зина Марковна будет жить. Поприветствуем!
Andor
тогда с чего баг, если ты пишешь строку с пробелами?
смотри и учись:
andor@titude:~/tmp$ python3 -c 'import yaml; cmd = yaml.safe_load(open("testme.yaml"))[0]["tasks"][0]["block"][1]["docker_container"]["command"]; import docker; client = docker.from_env(); client.containers.run("ubuntu:18.04", cmd, mounts=[docker.types.Mount("/tmp", "tmp")]);'+
andor@titude:~/tmp$ docker inspect youthful_elbakyan | jq '.[0]["Config"]["Cmd"]'
[
"touch",
"/tmp/hello slash cyberpunk"
]
Andor
ой, смонтировал криво
Andor
ну пофиг, работает так же в этом случае
Vladislav 👻
https://github.com/ansible/ansible-modules-core/blob/devel/cloud/docker/docker_container.py#L1632
Andor
Vladislav 👻
фишка в том, что это старая фигня, в доке написано, что до 2.4 принимался только текст as is
Andor
если передали список - просто передай его дальше, не выпендривайся
Andor
Vladislav 👻
да, я понял, про что ты