如何使用TeamCity运行docker容器和-i -t选项?

我试图运行docker容器作为构build在Linux TeamCity生成代理的一部分。 但是,如果我用-i -t选项运行docker容器,在执行命令的Build Log中没有输出。

命令行构build步骤:

 sudo docker run -i -t --name="echo_test" ubuntu echo "test" 

构build日志从echo命令丢失的输出:

 Step 1/2: Command Line (1s) [Step 1/2] Starting: /home/ec2-user/BuildAgent/temp/agentTmp/custom_script6340936320796175009 [Step 1/2] in directory: /home/ec2-user/BuildAgent/work/831248796cfa0a04 [Step 1/2] Process exited with code 0 

Docker容器日志确实有echo命令的输出:

 [ec2-user@ip-10-28-218-103 ~]$ docker logs echo_test test 

有人可以解释为什么发生这种情况或提供某种方式来诊断问题?

如果我将run docker选项更改为:只是-i ,只是-t ,或者删除它们都可以。

值得一提的是,起初我得到了sudo: sorry, you must have a tty to run sudo在TeamCity的命令行构build步骤中尝试执行sudo命令时sudo: sorry, you must have a tty to run sudo错误。 我在/etc/sudoers Default requiretty来解决这个问题。


我得到回声输出文本到生成日志通过添加-a stdout -a stderr选项。

命令行构build步骤:

 sudo docker run -i -t -a stdout -a stderr --name="echo_test" ubuntu echo "test" 

所以现在的问题是为什么在本地机器上执行命令时不需要它们。