[英]Issue with Jenkins on Kubernetes when building docker containers
[英]Jenkins on Kubernetes - Get logs of containers from kubectl
我正在与 Kubernetes 上的 Jenkins 合作,但我无法检索管道上使用的容器的日志。
例如使用以下管道:
pipeline { agent { kubernetes { containerTemplate { name 'alpine' image 'alpine' command 'tail -f /dev/null'} } } stages { stage('sample'){ steps{ container('alpine'){ echo "Hello world" sleep 600 } } } } }
一切正常,我可以在 Jenkins 控制台上看到“Hello world”,但我也想通过命令kubectl get logs pod-name -c alpine
将其作为 output 获取。 我想kubectl logs
显示在容器中用作入口点的命令(在本例中为tail -f /dev/null
)在stdout
/ stderr
上写入的内容,这就是我没有得到“Hello world”的原因,但我不知道如何实现我想要的。
我还看到了 Docker 文档中建议的解决方法:
官方的 nginx 镜像创建了一个从 /var/log/nginx/access.log 到 /dev/stdout 的符号链接,并创建了另一个从 /var/log/nginx/error.log 到 /dev/stderr 的符号链接,覆盖了日志文件并导致日志被发送到相关的特殊设备。 请参阅 Dockerfile。
但我认为该解决方案不适合我的问题。
这对我有用
containerTemplate { name 'alpine', image 'alpine', ttyEnabled: true, command 'cat' }
参考: https://github.com/jenkinsci/kubernetes-plugin#container-group-support
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.