gpt4 book ai didi

docker - Docker-compose up -d命令以某种方式覆盖生产标准输入和tty设置

转载 作者:行者123 更新时间:2023-12-02 19:54:37 26 4
gpt4 key购买 nike

需要帮助使docker compose运行我的容器而无法在生产环境中登录它。我试图通过覆盖撰写文件stdin和tty设置来实现这一点,但是失败了很多次。

我在撰写文件(docker-compose.yml)中打开了stdin和tty以便开发:

services:
web:
image: some_image
container_name: my_service_dev
environment:
.....
stdin_open: true
tty: true

我制作了另一个文件进行生产,并覆盖了包括在内的一些设置。省略了stdin_open和tty(docker-compose-prod.yml)。
services:
web:
image: some_image
container_name: my_service_prod
environment:
....

用Docker重建图像后

docker-compose -f docker-compose-prod.yml build --no-chache

并与他们一起运行

docker-compose -f docker-compose-prod.yml up -d

我仍然可以使用docker exec输入此容器的伪tty。

我已尝试在下次尝试中显式禁用stdin(docker-compose-prod.yml)
services:
web:
image: some_image
container_name: my_service_prod
environment:
.....
stdin_open: false
tty: false

重建它并以相同的结果运行。

然后,我假设我的docker-compose.yml文件以某种方式被合并以构建/运行设置,因此我将其重命名为docker-compose-default.yml。

但是,I,我仍然观察到我的容器在生产中以打开的stdin运行。
docker-compose up -d是否始终在打开的stdin / tty下运行(听起来很奇怪,但我感觉我快疯了)?
还是我想念什么?

最佳答案

docker exec -it my_prod_container bash

这不会连接到容器的标准输入。它开始在容器内进行第二次bash处理。 stdin与它无关,启用或禁用 stdin_opentty将无效。它们是无关的。

与C的类比是关闭stdin并希望它将阻止 fork()调用。

关于docker - Docker-compose up -d命令以某种方式覆盖生产标准输入和tty设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58808754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com