Запуск docker exec в службе systemd (код = завершен, статус = 216 / ГРУППА)

Я пытаюсь настроить docker exec с помощью службы systemd, но это всегда терпит неудачу.

  • Команда работает нормально при выполнении непосредственно в терминале (ssh).

В: Возможно ли это сделать, или мне нужно использовать внутри bash-скрипта (.sh)?


/etc/systemd/system/laravel.service

[Unit]
Description=Laravel Queue
After=docker.service
Requires=docker.service

[Service]
Type=simple
ExecStart="/usr/bin/docker exec -it my_docker /usr/bin/php artisan queue:work --env=production --tries 2 --timeout 60"
User=ubuntu
Group=ubuntu
KillMode=process
Restart=always

[Install]
WantedBy=multi-user.target

статус службы sudo vetspay

jan 05 03:04:39 legolas systemd[1]: Started Laravel Queue.
jan 05 03:04:39 legolas systemd[1]: laravel.service: Main process exited, code=exited, status=216/GROUP
jan 05 03:04:39 legolas systemd[1]: laravel.service: Unit entered failed state.
jan 05 03:04:39 legolas systemd[1]: laravel.service: Failed with result 'exit-code'.

person Luciano Nascimento    schedule 05.01.2018    source источник


Ответы (2)


Ошибка (устройство ввода не ...) вызвана: -it в этой строке ExecStart="/usr/bin/docker exec -it my_docker /usr/bin/php artisan queue:work --env=production --tries 2 --timeout 60" User=ubuntu, удалите ее, в этом нет необходимости, если docker exec находится в файле bash

person network_newbie    schedule 05.01.2018

Я проверил команду внутри скрипта и получил ошибку: the input device is not a TTY

Обычно я не могу использовать команду с -t, потому что они не интерактивны. Удалив его, теперь он работает правильно!


Где я нашел ответ:

устройство ввода не является телетайпом

person Luciano Nascimento    schedule 05.01.2018
comment
В запуске docker из systemd задействовано больше угловых случаев, чем адресов в этом ответе. Рассмотрите возможность использования systemd-docker - это обеспечивает интеграцию сокета SD_NOTIFY, устраняет различия в соглашениях cgroup, обрабатывает распространение регистрируется и в противном случае решает проблему более комплексно. - person Charles Duffy; 05.01.2018