запустить python в качестве командной строки, когда django работает под docker - PullRequest
0 голосов
/ 27 марта 2020

Я работаю над изображением django docker и хочу выполнить функцию с использованием командной строки. Я знаю, что могу войти в контейнер оболочки python docker и запустить такую ​​функцию:

  • docker container ls, чтобы найти идентификатор контейнера и использовать в следующей команде
  • docker container exec -it <container_id> python3 manage.py shell Тогда:
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>>
>>> from xx import foo 
>>> foo()  # foo() has been excecuted

Однако мне было интересно, я могу использовать что-то подобное, например python flag -c, что поможет запустить небольшой фрагмент кода python в командной строке, например:

  • python3 -c "from xx import foo; foo()"

Я пытался вставить cmd с linux трубками: echo 'from xx import foo; foo()' | docker container exec -it <container_id> python3 manage.py shell, однако это не работает.

Буду признателен за любые советы, спасибо за ваше время.

1 Ответ

1 голос
/ 27 марта 2020

Вы можете сделать это следующим образом:

docker exec -it <container id> python3 manage.py shell --command="import foo;foo()"

Более подробную информацию можно найти в документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...