Я использую Docker SDK для Python . Как передать файл в контейнер с помощью функции exec_run
.
Я хочу повторить следующую команду docker exec:
docker exec -i -u postgres <Insert the id find above> pg_restore -C -d postgres < filename
Команда выше загружает резервную копию postgres. filename
- это имя файла, которое находится на хост-компьютере, с которого выполняется команда exec.
Я пытаюсь это:
containers[0].exec_run("/bin/bash -c 'pg_restore -C -d postgres <'" + filename, stdout=True, stderr=True, user='postgres')
print(exec_log[1])
Здесь файл находится в другом контейнере Docker, в котором запущено приложение Python, использующее Docker-клиент Python.
Я получаю это:
b'/bin/bash: 2019-04-29-postgres_db.dump: No such file or directory\n'
Я изучил put_archive
, но для этого потребовалось бы извлечь файл из контейнера. Есть ли способ сделать это, используя exec_run
или любым другим более простым способом?
Спасибо