Hallo – zuerst einmal, ich hätte es bevorzugt, diesen Fehlerbericht direkt im Repository einreichen zu können: GitHub - discourse/discourse_theme: CLI helper for developing Discourse themes – denn ich bin mir nicht sicher, ob ich hier richtig bin?
discourse_theme ist ein Ruby-Tool und ich möchte kein Ruby auf meinem Computer haben. Da ich einheitliche Ruby-Versionen für mein gesamtes Team möchte, habe ich dieses Docker-Image erstellt:
# syntax = docker/dockerfile:1.10
# Stellen Sie sicher, dass RUBY_VERSION mit der Ruby-Version in .ruby-version und Gemfile übereinstimmt
ARG RUBY_VERSION=3.4.2
ARG ALPINE_VERSION=3.20
FROM ruby:$RUBY_VERSION-alpine${ALPINE_VERSION}
# Pakete installieren
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"]
Ich kann es so ausführen:
# ZUERST BAUEN
docker build -t discourse_theme:latest .
# WATCH AUSFÜHREN
docker run -i -t --rm -v $(pwd):/root -w /root discourse_theme:latest watch .
Das Problem, das ich hier melden möchte, betrifft die CLI-Interaktivität.
Es gibt keine Tastaturinteraktivität innerhalb von Docker.
Das sehe ich, wenn ich ausführe:
Wenn ich eine Pfeiltaste drücke, verschwindet die Hilfe-Nachricht, aber die grüne “ausgewählte” Option bewegt sich nie:
Ich denke also, das ist ein Fehler in der Gem. Sie hat eine Tastatureingabe erkannt, aber die Auswahl nicht verschoben. Ich habe viele Tastenanschläge getestet.
Ein weiterer Test, den ich durchgeführt habe, war, Bash im Image auszuführen und discourse_theme von dort zu starten, aber es ist dasselbe Problem.
$ docker run -it --rm -v $(pwd):/root -w /root --entrypoint /bin/bash discourse_theme:latest
9f5736f3265e:~# discourse_theme watch .
Ist das normales Verhalten für Ruby CLI-Tools oder gibt es einen Fehler? Danke

