Docker compose up-d命令以某种方式覆盖了生产stdin和tty设置
需要帮助使docker compose运行我的容器,但无法在生产中登录到它。我试图通过覆盖compose file stdin和tty设置来实现这一点,但失败了。。。很多次 我已在我的撰写文件(docker compose.yml)中打开stdin和tty进行开发: 我为生产制作了另一个文件,并覆盖了一些设置,包括省略的stdin_open和tty(docker-compose-prod.yml) 使用docker compose重建图像后Docker compose up-d命令以某种方式覆盖了生产stdin和tty设置,docker,docker-compose,production,Docker,Docker Compose,Production,需要帮助使docker compose运行我的容器,但无法在生产中登录到它。我试图通过覆盖compose file stdin和tty设置来实现这一点,但失败了。。。很多次 我已在我的撰写文件(docker compose.yml)中打开stdin和tty进行开发: 我为生产制作了另一个文件,并覆盖了一些设置,包括省略的stdin_open和tty(docker-compose-prod.yml) 使用docker compose重建图像后 docker-compose-f docker-com
docker-compose-f docker-compose-prod.yml构建——无需更改
和他们一起跑
docker compose-f docker-compose-prod.yml up-d
我仍然可以用docker exec输入这个容器的伪tty
我已尝试在下一次尝试(docker-compose-prod.yml)时显式禁用stdin
重建它并以相同的结果运行
然后我假设我的docker-compose.yml文件以某种方式被合并为构建/运行设置,所以我将其重命名为docker-compose-default.yml
但遗憾的是,我仍然注意到,我的容器在产品中使用打开的stdin运行。
docker compose up-d是否总是使用打开的stdin/tty运行(听起来很奇怪,但我觉得我快疯了)?
或者我错过了什么
docker exec -it my_prod_container bash
这不连接到容器的标准输入。它在容器内启动第二个bash进程。stdin与此无关,启用或禁用stdin_open
和tty
将无效。他们没有关系
与C类似的是关闭stdin并希望它能阻止fork()
调用
这不连接到容器的标准输入。它在容器内启动第二个bash进程。stdin与此无关,启用或禁用stdin_open
和tty
将无效。他们没有关系
与C类似,关闭stdin并希望它能阻止
fork()
调用。你说可以用docker exec输入伪tty是什么意思?你在用docker exec做什么?docker exec-它是我的产品容器,你说你可以用docker exec输入伪tty是什么意思?你在用docker exec做什么?docker exec-它是我的产品容器bashAha,我明白了,所以一开始就不需要打开stdin和分配tty(在开发中)?那么,你能告诉我这些选项的用例是什么吗?啊哈,我明白了,所以在开发中,没有必要首先打开stdin并分配tty吗?你能告诉我这些选项的用途是什么吗?
services:
web:
image: some_image
container_name: my_service_prod
environment:
....
services:
web:
image: some_image
container_name: my_service_prod
environment:
.....
stdin_open: false
tty: false
docker exec -it my_prod_container bash