如何使用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"
所以现在的问题是为什么在本地机器上执行命令时不需要它们。
- Docker组成networking和“内部”属性的例子
- 运行任务时出现AWS ECS错误:您的群集中找不到容器实例
- sh:grep:找不到命令
- 在Windows 7上的Docker撰写:找不到Gemfile或.bundle /目录
- 在官方Ruby映像的Docker容器上运行Rails应用程序时出错
- Docker – 使用IP而不是–link进行通信
- 当使用mesos,marathon和zookeeper时,我使用“docker,mesos”指定“containerizers”文件时,我的mesos-slave不会启动?
- 在构build映像时从Docker容器以localhost身份访问主机
- 使用共享的MySQL容器