result.wait()
следует дождаться завершения работы контейнера, а затем вернуть код выхода.
Однако вы, вероятно, столкнетесь с некоторыми проблемами, поскольку вы указываете auto_remove=True
, но не указываете detach=True
. run()
без detach=True
запустит контейнер до завершения, затем опция auto_remove=True
удалит контейнер, и в этот момент код состояния больше не существует. Вы можете явно разделить эти шаги:
client = docker.from_env()
container = client.containers.run(
image="my-prog-image:latest",
command=["/etc/my-prog/configs.ini"],
detach=True,
)
result = container.wait()
container.remove()
(С точки зрения Docker CLI вы сделали docker run --rm ...
, а затем пытаетесь найти результат контейнера с помощью docker ps -a
, но контейнер исчез; я предлагаю изменить его на docker run -d ...
без --rm
, проверяя вывод docker ps
, а затем вручную docker rm
контейнер. На самом деле, есть даже команда docker wait
CLI , но она редко используется.)