Discourse_theme 在 Docker container 中运行时无法交互

嘿 - 首先,我想说我更希望能够直接在仓库中提交此 bug 报告:GitHub - discourse/discourse_theme: CLI helper for developing Discourse themes - 因为我不确定我在这里是否找对了地方?

discourse_theme 是一个 Ruby 工具,而我不想在我的电脑上安装 Ruby。而且,由于我想在整个团队中保持 Ruby 版本的一致性,所以我制作了这个 Docker 镜像:

# syntax = docker/dockerfile:1.10

# 确保 RUBY_VERSION 与 .ruby-version 和 Gemfile 中的 Ruby 版本匹配
ARG RUBY_VERSION=3.4.2
ARG ALPINE_VERSION=3.20
FROM ruby:$RUBY_VERSION-alpine${ALPINE_VERSION}

# 安装软件包
RUN --mount=type=cache,id=dev-apk-cache,sharing=locked,target=/var/cache/apk \
  --mount=type=cache,id=dev-apk-lib,sharing=locked,target=/var/lib/apk \
  apk add \
  ca-certificates \
  bash \
  tzdata \
  xz-libs \
  gcompat \
  zstd-libs \
  libpq

RUN gem install discourse_theme

ENTRYPOINT ["discourse_theme"]

我可以通过以下方式运行它:

# 先构建
docker build -t discourse_theme:latest .

# 运行 WATCH
docker run -i -t --rm -v $(pwd):/root -w /root discourse_theme:latest watch .

我想在这里报告的问题是关于 CLI 的交互性。

在 Docker 中运行时,没有键盘交互性。

运行此命令时,我看到:

如果我按下箭头键,帮助信息会消失,但绿色的“选定”选项永远不会移动:

所以我认为这是 Gem 中的一个 bug。它检测到了按键,但没有移动选择。我测试了很多按键。

我的另一个测试是在镜像中运行 bash,然后从那里启动 discourse_theme,但问题相同。

$ docker run -it --rm -v $(pwd):/root -w /root --entrypoint /bin/bash discourse_theme:latest
9f5736f3265e:~# discourse_theme watch .

这是 Ruby CLI 工具的正常行为,还是存在 bug?谢谢