Я постараюсь объяснить это как можно проще.
У меня есть приложение на python для Python. В какой-то момент в этом приложении на Python я пытаюсь запустить команду docker в другом (libreoffice) контейнере следующим образом:
import subprocess
file_path = 'path_to_file'
args = ['docker', 'run', '-it', '-v', '/tmp:/tmp',
'lcrea/libreoffice-headless', '--headless', '--convert-to', 'pdf', file_path,
'--outdir', '/tmp']
process = subprocess.run(args,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
timeout=timeout)
Я заканчиваю Dockerfile моего приложения на python командой, которая запускает сервер:
CMD python3 -m app.run_app
Что интересно, когда я запускаю приложение на python, оно работает нормально:
docker-compose run -p 9090:9090 backend /bin/bash
root@74430c3f1f0c:/src python3 -m app.run_app
Но когда я запускаю его просто с помощью docker-compose up
, контейнер libreoffice никогда не вызывается. Я уверен в этом, потому что когда я выполняю docker ps -a
в первом случае, создается контейнер libreoffice, а во втором его нет.
Что здесь происходит?