# Discourse\_theme 在 Docker container 中运行时无法交互

**URL:** https://meta.discourse.org/t/discourse-theme-not-interactive-when-running-inside-a-docker-container/372386
**Category:** Bug
**Created:** [2025年七月1日 08:42 UTC](https://meta.discourse.org/t/discourse-theme-not-interactive-when-running-inside-a-docker-container/372386 "2025-07-01T08:42:12Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![damienalexandre](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damienalexandre/32/293019_2.png) [@damienalexandre](https://meta.discourse.org/u/damienalexandre)
#### Post date: [2025年七月1日 08:42 UTC](https://meta.discourse.org/t/discourse-theme-not-interactive-when-running-inside-a-docker-container/372386/1 "2025-07-01T08:42:12Z")

</div>

嘿 - 首先，我想说我更希望能够直接在仓库中提交此 bug 报告：[GitHub - discourse/discourse\_theme: CLI helper for developing Discourse themes](https://github.com/discourse/discourse_theme) - 因为我不确定我在这里是否找对了地方？

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

```dockerfile
# 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"]

```

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

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

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

```

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

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

运行此命令时，我看到：

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/a/4/3a4eb459dee40a1fc92205e47b044025a154e90f.png)

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

 ![一个深色终端窗口显示正在执行的命令，用于运行具有各种参数的 Docker 容器，以及显示 Discourse 主题设置进度的日志消息。（由 AI 标注）](https://global.discourse-cdn.com/meta/original/4X/b/1/8/b1872388d9f02a3066e896fe6c384a49c1bf8cd9.png)

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

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

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

```

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