嘿 - 首先,我想说我更希望能够直接在仓库中提交此 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?谢谢

