Как заставить boost::process вызывать докер из любого места?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как заставить boost::process вызывать докер из любого места?

Сообщение Anonymous »

  • Boost версии 1.74
  • Docker версии 28.2.2
Игрушка работает при вызове из каталога сборки:

Код: Выделить всё

$ cd build
$ ./test
27610c1a6b49a0f459fc9e39a374f2e5b9b5e3175b0e926af4c7359c6bd7f93f
но при вызове из корня проекта на уровень выше генерируется ошибка, о которой я не могу найти значимых результатов поиска:

Код: Выделить всё

$ build/test
terminate called after throwing an instance of 'boost::process::process_error'
what():  execve failed: Permission denied
Aborted (core dumped)
Мне бы хотелось, чтобы это работало в обоих направлениях. Как?
Я не могу воспроизвести такое поведение, вызвав docker из командной строки, поэтому склонен полагать, что это не вина. Тем не менее, если я заменю вызов простым ls, это будет работать в обоих случаях.
Код:

Код: Выделить всё

#include 

int main()
{
boost::process::system("docker run --detach --rm 3151172cc781");
}
(До того, как я это сделал, это был набор тестов Boost, предназначенный для запуска образа и выполнения различных тестов над полученными контейнерами.)


Подробнее здесь: https://stackoverflow.com/questions/798 ... m-anywhere
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»