Docker-compose up -d 命令以某种方式覆盖生产标准输入和 tty 设置
Docker-compose up -d command somehow overrides production stdin and tty settings
需要帮助 docker 编写 运行 我的容器,但无法在生产环境中登录。我试图通过覆盖撰写文件标准输入和 tty 设置来实现这一点,但失败了……很多次。
我在 compose 文件中打开了 stdin 和 tty 用于开发(docker-compose.yml):
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 compose 重建图像后
docker-compose -f docker-compose-prod.yml build --no-chache
和运行将它们与
结合起来
docker-compose -f docker-compose-prod.yml up -d
我仍然可以使用 docker exec.
进入这个容器的伪终端
我试图在下次尝试时明确禁用标准输入 (docker-compose-prod.yml)
services:
web:
image: some_image
container_name: my_service_prod
environment:
.....
stdin_open: false
tty: false
重建它并 运行 得到相同的结果。
然后我假设我的 docker-compose.yml 文件以某种方式被合并到 build/run 设置,所以我将它重命名为 docker-compose- default.yml.
但是,唉,我仍然观察到我的容器 运行s 在生产中打开了标准输入。
docker-compose up -d 是否总是 运行 打开 stdin/tty(听起来 st运行ge 但我觉得我要疯了)?
或者我错过了什么?
docker exec -it my_prod_container bash
这没有连接到容器的标准输入。它在容器内启动第二个 bash 进程。 stdin 与它无关,启用或禁用 [=11=] 和 tty
将无效。他们没有关系。
C 的一个类比是关闭标准输入并希望这会阻止 fork()
调用。
需要帮助 docker 编写 运行 我的容器,但无法在生产环境中登录。我试图通过覆盖撰写文件标准输入和 tty 设置来实现这一点,但失败了……很多次。
我在 compose 文件中打开了 stdin 和 tty 用于开发(docker-compose.yml):
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 compose 重建图像后
docker-compose -f docker-compose-prod.yml build --no-chache
和运行将它们与
结合起来docker-compose -f docker-compose-prod.yml up -d
我仍然可以使用 docker exec.
进入这个容器的伪终端我试图在下次尝试时明确禁用标准输入 (docker-compose-prod.yml)
services:
web:
image: some_image
container_name: my_service_prod
environment:
.....
stdin_open: false
tty: false
重建它并 运行 得到相同的结果。
然后我假设我的 docker-compose.yml 文件以某种方式被合并到 build/run 设置,所以我将它重命名为 docker-compose- default.yml.
但是,唉,我仍然观察到我的容器 运行s 在生产中打开了标准输入。 docker-compose up -d 是否总是 运行 打开 stdin/tty(听起来 st运行ge 但我觉得我要疯了)? 或者我错过了什么?
docker exec -it my_prod_container bash
这没有连接到容器的标准输入。它在容器内启动第二个 bash 进程。 stdin 与它无关,启用或禁用 [=11=] 和 tty
将无效。他们没有关系。
C 的一个类比是关闭标准输入并希望这会阻止 fork()
调用。