,可能是因为在Makefile中执行docker exec命令时,没有指定-T参数。
Docker exec命令用于在正在运行的容器中执行命令。默认情况下,docker exec命令会分配一个伪终端(pseudo-TTY)并绑定到容器的标准输入、输出和错误输出。但是,在Makefile中执行docker exec命令时,默认是不分配伪终端的,因此无法看到shell提示或输入。
为了解决这个问题,可以在Makefile中执行docker exec命令时,添加-T参数,强制分配一个伪终端。修改后的Makefile示例如下:
run-container:
docker exec -it -T container_name command
其中,container_name是要执行命令的容器名称,command是要在容器中执行的命令。
通过添加-T参数,docker exec命令会分配一个伪终端,使得在Makefile中运行docker exec时能够看到shell提示和输入。
推荐的腾讯云相关产品是腾讯云容器服务(Tencent Kubernetes Engine,TKE)。腾讯云容器服务是基于Kubernetes的容器管理服务,提供高可用、弹性伸缩的容器集群管理能力。您可以使用腾讯云容器服务来部署和管理容器化应用,包括使用docker exec命令在容器中执行命令。了解更多关于腾讯云容器服务的信息,请访问以下链接:
腾讯云容器服务官方网站:https://cloud.tencent.com/product/tke
腾讯云容器服务产品介绍:https://cloud.tencent.com/document/product/457
领取专属 10元无门槛券
手把手带您无忧上云