docker-compose up 和标准输入上的用户输入

2024-01-11

有人可以解释(也许给出解决方法) docker-compose 的以下行为吗?

给定以下文件:

Dockerfile

FROM alpine:3.8

COPY ./entrypoint.sh /entrypoint.sh

ENTRYPOINT [ "/entrypoint.sh" ]

入口点.sh

#!/bin/sh

until [ ! -z "$PLOP" ]; do
    echo -n 'enter value here: '
    read PLOP
done

echo "Good ... PLOP is $PLOP"

exit 1

docker-compose.yml

version: '3.7'

services:
  plop:
    tty: true
    stdin_open: true
    image: webofmars/plop:latest

输出如下:

1) ./entrypoint.sh

docker-stdin> ./entrypoint.sh
enter value here:
CASE1
Good ... PLOP is CASE1

这似乎OK

2) docker-stdin> docker run -it webofmars/plop

enter value here: CASE2
Good ... PLOP is CASE2

这似乎OK

3) docker-stdin> docker-compose run plop

enter value here: CASE3
Good ... PLOP is CASE3

这似乎OK

4) docker-stdin> docker-compose up

Recreating docker-stdin_plop_1 ... done
Attaching to docker-stdin_plop_1 (last forever)

这看起来很奇怪并且NOT OK对于我的用例

我错过了什么吗?


docker compose up 和标准输入上的用户输入 https://github.com/docker/compose/issues/3081

这是预期的行为。 up 不具有交互性。可以开始了 多个容器,所以你不能有一个终端 stdin 为多个容器打开。

但是您可以选择使用 docker-compose。

附加在不同的窗口中,当您启动 docker-compose up 时,您可以添加 -d 参数,它将在后台启动该 docker。

docker-compose up -d

然后只需附加该泊坞窗并输入值

docker attach play_001_plop_1

单行命令:

docker-compose up -d && docker attach play_001_plop_1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker-compose up 和标准输入上的用户输入 的相关文章

  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • 每次我执行 docker compose up 时,Docker 都会创建一个新卷

    我有一个 docker compose 文件 可以启动多个服务 我刚刚收到一条错误消息 指出我的磁盘空间不足 因此我输入 docker system df 并看到我有 21 个卷 如果我有 3 个 docker 容器 每个容器都附加一个卷
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • docker 构建失败,无法解析“archive.ubuntu.com”

    我无法使用以下 Dockerfile 构建映像 FROM ubuntu RUN apt get y update apt get y install nodejs npm ssh cache npm install when package
  • 为什么 iconv 在 php:7.4-fpm-alpine docker 中返回空字符串

    给出以下代码
  • 无法通过节点应用程序连接到redis,两者都在docker中

    我正在尝试将我的应用程序连接到 redis 但我得到 ioredis Unhandled error event Error connect ECONNREFUSED 127 0 0 1 6379 当我做 docker exec it ed
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 为什么 Docker 不支持多租户?

    我看了这个关于 Docker 的 YouTube 视频 https www youtube com watch v vb7U 9AO7Ww22 00 演讲者 Docker 产品经理 说道 您可能会想 Docker 不支持多租户 您是对的 但
  • 如何使用 Netty 连接到运行 HTTP 服务器的 UNIX 域套接字?

    我正在尝试使用 Netty 连接到 Docker UNIX 域套接字 到目前为止 这是我的尝试 PostConstruct public void init throws Exception io netty bootstrap Boots
  • 研究缓冲区溢出时应该使用哪些版本的 GCC 或标志?

    最近 作为计算机工程专业的本科生 我一直在研究缓冲区溢出 出于兴趣 我开始研究缓冲区溢出 但在尝试在我的计算机上用 GCC 4 9 1 在 Debian Jessie 中 编译的我自己的 C 程序中实现它们时遇到了困难 我听说较新的编译器中
  • 在运行时检查 GCC 版本

    我需要找出 C 程序执行过程中 运行时 可用的 系统中安装的 GCC 版本 主要版本和次要版本 意思是 以编程方式提取可用 gcc 的版本 就像我在 shell 中输入 gcc version 一样 但在 c 程序中 The GNUC an
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 使用awk将列中的值替换为txt文件中的另一个值

    我是 Linux 和 awk 脚本编写的新手 我有 tab delim txt 文件 如下所示 AAA 134 145 Sat 150 167 AAA 156 167 Sat 150 167 AAA 175 187 Sat 150 167
  • 如何在shell脚本中给出密码?

    在 shell 脚本文件中 我使用一些命令 例如scp and make install要求我输入密码 我运行一个 shell 脚本来编译一个大项目 一段时间后它会要求我输入密码才能使用scp 我需要等待该过程并在此之后提供密码 我只想通过
  • 为 OpenWrt 编写和编译程序

    我有一个在 OpenWRT 下运行的具有 MIPS 架构的嵌入式设备 系统类型 MediaTek MT7628AN ver 1 eco 2机器 WRTnode2P 处理器 0CPU型号 MIPS 24KEc V5 5 我想通过我的电脑 ub
  • 如何找到进程启动时使用的原始用户名?

    有一个 perl 脚本需要以 root 身份运行 但我们必须确保运行该脚本的用户最初没有以用户 foo 身份登录 因为它将在脚本运行期间被删除 那么 我如何查明自登录以来可能已多次起诉的用户是否在该链中的任何时间都没有模拟过 foo 我发现

随机推荐

  • 如何根据 Google BigQuery 中的特定列值连接一列的 N 行?

    USER ID string col 100001 Here 100001 there 100001 Apple 200002 this is 200002 that is 200002 Apple 200002 Cell 4 这是我的原始
  • 继续黑屏。以前从未见过这个

    我正在 Xcode 5 0 2 中为 iOS7 制作一个演示 并连接了一些场景并有一些按钮 一些视图控制器类和一些转场 没什么不寻常的 我以前从未见过的是 在某些构建上 当执行转场时 下一个视图控制器在推送后会间歇性地全黑 但并非总是如此
  • Laravel 5.3 安装错误

    我正在尝试启动本地托管在我的浏览器上的 laravel 但它给了我以下错误 解析错误 语法错误 意外的 期望 或变量 T VARIABLE 在 opt lampp htdocs projects larawiz vendor laravel
  • [if lt IE 9] 的 Slim 模板引擎语法

    我使用 slim 作为视图模板引擎http slim lang com http slim lang com 你会如何用 slim 编写下面的代码 thanks 应该使用 if lt IE 9 gt
  • 从字符串中提取Python字典

    我有一个字符串 里面有有效的 python 字典 data Some string created Foo u 1002803 Bar value string continue etc 我需要提取该字典 我尝试使用正则表达式 但由于某种原
  • 如何在 C 中访问(动态分配的)Fortran 数组

    我的主要问题是为什么数组会做如此奇怪的事情 以及是否有任何方法可以以 干净 的方式执行以下操作 我目前有一个C程序foo c连接 Fortran 程序bar f90 via dlopen dlsym 大致如下面的代码所示 foo c inc
  • 无法连接到远程服务器上的mongo

    我已经在machine1上安装了mongo Ubuntu 14 04 3 LTS server 在我的本地网络中 我也打开了端口27017如中提到的this https docs mongodb org manual tutorial co
  • android 卸载应用程序后保留数据库

    我正在开发 sq lite 数据库 可以在其中找到三星设备中的问题 当我卸载应用程序时 Android 操作系统会保留导致数据库版本冲突的数据库 以前我使用版本 2 现在我使用版本 1 作为参数sqllitehelper构造函数 按照惯例
  • Tensorflow.js 加载增强层操作时出错

    我通过 python 中的张量流训练了一个模型 使用将图像增强合并到模型层中 但是 当我将训练好的模型转换为tensorflow js model json 并运行它时 出现错误 jquery 3 3 1 slim min js 2 Unc
  • 如何在 Zend Framework 中创建 Web 服务?

    如何使用 Zend Framework 通过 HTTP REST 协议创建 Web 服务 示例代码将会很有用 要调用此 Web 服务 请使用以下参数打开保存此 PHP 文件的 URL 这将给出输出 Hello world Test
  • 使用 FineUploader 向 Amazon S3 提供标头

    我正在使用 FineUploader 将文件上传到 Amazon S3 我想添加Content Disposition文件头 我已经尝试过这个 在 CoffeeScript 中 request endpoint accessKey cust
  • 拨号 tcp 查找:docker windows 桌面上没有此类主机问题

    我已经在我的办公室 Windows 10 Pro 机器上安装了 docker 我在尝试从注册表中提取数据时遇到拨号 tcp 查找问题 来自守护进程的错误响应 获取https registry 1 docker io v2 https reg
  • 如何在 C# 中使用 p/invoke 将指针传递给数组?

    C API 签名示例 void Func unsigned char bytes 在 C 中 当我想将指针传递给数组时 我可以这样做 unsigned char bytes new unsigned char 1000 Func bytes
  • Azure CLI aks install cli 权限被拒绝并且 sudo 不起作用

    我正在尝试奔跑az aks install cli但我收到一条错误消息 Downloading client to usr local bin kubectl from https storage googleapis com kubern
  • 正则表达式:捕获捕获组内的捕获组

    Intro 您可以跳至如果什么 如果您对介绍感到厌倦 这个问题并不是特别针对VBScript 我只是在这种情况下使用它 我想找到一个用于一般正则表达式使用 包括编辑器 的解决方案 当我想创作一个改编版时 这一切就开始了示例 4 其中使用 3
  • Django:自定义序列化选项?

    我正在开发一个基于 Django 的 Web 服务 并且正在尝试找出进行序列化的最佳方法 然而 棘手的要求是我希望对响应的格式和包含的字段有几乎完全的控制 例如 Django 序列化器 不幸的是 它包括wadofstuff 序列化器 htt
  • 未定义的方法“空白?”对于“123”:字符串(NoMethodError)

    当我检查 ruby 中的类变量时 我收到这个奇怪的错误 未定义的方法 空白 对于 123 字符串 NoMethodError 我所做的就是Employee set id blank 有什么想法为什么会发生这种情况吗 Thanks The b
  • 如何从 std::integer_sequence 初始化静态数组?

    我为枚举制作了一个符合以下规则的可迭代生成器 Enum 是一个整数序列 没有间隙 给定枚举的最后一个元素不是实际的枚举元素 该类看起来像这样 template
  • 使用 Spark 安全查询。带参数的sql查询表示法

    这个问题是指构建 pyspark 作业来处理大型数据集 Spark提供了多种查询方式 函数表示法和 SQL 表示法 这个问题仅限于 Spark SQL 符号 模式 一个常见的模式是 df spark sql f select from so
  • docker-compose up 和标准输入上的用户输入

    有人可以解释 也许给出解决方法 docker compose 的以下行为吗 给定以下文件 Dockerfile FROM alpine 3 8 COPY entrypoint sh entrypoint sh ENTRYPOINT entr