docker compose中的Psuedo tty分配
在docker中,我可以简单地使用docker compose中的Psuedo tty分配,docker,docker-compose,tty,Docker,Docker Compose,Tty,在docker中,我可以简单地使用-t开关让docker运行分配一个伪tty(在这些示例中,我使用nohup从我的真实tty分离): 我正试图用docker compose实现同样的结果。我有以下docker compose.yml: version: "3" services: myservice: image: debian tty: true 我在运行它时使用和不使用nohup: $ docker-compose run myservi
-t
开关让docker运行
分配一个伪tty(在这些示例中,我使用nohup
从我的真实tty分离):
我正试图用docker compose实现同样的结果。我有以下docker compose.yml
:
version: "3"
services:
myservice:
image: debian
tty: true
我在运行它时使用和不使用nohup
:
$ docker-compose run myservice tty # Produces "/dev/pts/0"
$ nohup docker-compose run myservice tty # Produces "not a tty"
声明我可以使用-T
禁用伪tty的分配,但似乎没有明确启用它的方法(默认情况下应该分配tty,因此不需要这样做)
-T
禁用伪tty分配。默认情况下,docker compose run
分配TTY
我做错什么了吗?在您的
docker compose.yml
中为您的服务包括以下内容:
services:
myservice:
...
stdin_open: true # docker run -i
tty: true # docker run -t
在您的
docker compose.yml
中为您的服务包括以下内容:
services:
myservice:
...
stdin_open: true # docker run -i
tty: true # docker run -t
似乎您想在后台运行`docker compose run-d myservice
,您可以使用
-d`,因为nohup将服务发送到后台nohup
,在我的问题中,它只是模拟我在执行脚本时所处的情况。该脚本没有tty。实际图像包含一些需要tty的代码。似乎您希望在后台运行`docker compose run-d myservice,您可以使用
-d`,因为我的问题中的nohup send service to backgroundnohup
只是模拟我在执行脚本时所处的情况。该脚本没有tty。实际图像包含一些需要tty的代码。