Я создал каркасный проект Django REST, который хочу развернуть на сервере.У меня нет доступа администратора к серверу, и поэтому я нашел единственный способ убедиться, что все зависимости проекта (такие как распределение Anaconda) будут доступны на сервере, это создать образ докера для моего проекта, а затем создатьсоответствующий контейнер на сервере, затем запустите его оттуда.
В моем проекте у меня есть сценарий python (mymain.py), который вызывается с помощью subprocess.Popen ().Это прекрасно работает локально, и subprocess.Popen () делает все, что должен.
Однако, когда я пытаюсь сделать это из контейнера докера, кажется, что строка subprocess.Popen () былаполностью пропущен [mymain.py не называется].
Для докера я создал файл docker-compose.yml, и в командной строке я набираю:
docker-compose up
Я неувидеть любую ошибку, и все, кажется, работает нормально, однако subprocess.Popen (), кажется, не работает.
mymain.py первая строка:
print('Testing if subprocess called mymain.py!!!')
В другомфайл, я вызываю subprocess.Popen ().Я попытался распечатать ошибку, но, к сожалению, и stdout, и stderr ничего не возвращают:
p = subprocess.Popen(['python', mymain_path, args], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
out, err = p.communicate()
print('SUBPROCESS ERROR: ' + str(err))
print('SUBPROCESS stdout: ' + str(out.decode()))
И вот что я получаю:
SUBPROCESS ERROR: None
SUBPROCESS stdout:
Как видите, первая строкамоего main.py никогда не печатался ...
Однако, когда я делаю это локально, набирая в командной строке:
python manage.py runserver 9000
все работает без проблем (строка «Тестирование, еслипечатается подпроцесс mymain.py !!!.)
Я даже пытался открыть оболочку контейнера Docker и набрать там ту же команду 'python manage.py runserver 9000', но, к сожалению, это не сработало.
Теперь вопрос в том, как заставить подпроцесс работать удаленно (в контейнере Docker)?
Любая помощь по этому вопросу очень ценится!
Я использую:
Docker version 18.09.2, build 6247962
docker-compose version 1.23.2, build 1110ad01
Python 3.7.0