stdin不是Jenkins的tty

我有我的笔记本电脑上运行Windows 10本地安装Jenkins。我旋转了一个运行SQL Server的Linux容器,但是当我尝试运行以下:

winpty docker exec -it SQLLinuxnull sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -PP@ssword1 -Q 'EXEC sp_configure '\''clr enabled'\'', 1;' 

我得到:

 stdin is not a tty 

当我从PowerShell会话运行docker exec命令时,它完成没有任何问题。 Trawling这个网站提出了一个答案,提示这可能与Linux容器中需要执行sudo的任何帐户有关,而且我应该修改/etc/sudoers文件,问题是我没有根据uname -a有一个/etc/sudoers文件uname -a这是容器基于Linux的版本(不是它的基础是Linux映像中的官方微软SQL服务器):

 # uname -a Linux f9509a952eae 4.9.49-moby #1 SMP Wed Sep 27 00:36:29 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 

有人可以确认这是一个sudoers相关的问题。

 docker exec -it 

…要求它在TTY可用的上下文中运行。 如果你可以在程序执行后期避免需要stdin或terminal(例如,在禁用了RequireTTY选项的容器中configuration了/etc/sudoers ),你应该能够简单地删除-it标志。