Olá - primeiro, digamos que eu teria preferido a capacidade de enviar este relatório de bug diretamente no repositório: GitHub - discourse/discourse_theme: CLI helper for developing Discourse themes - porque não tenho certeza se estou no lugar certo aqui?
discourse_theme é uma ferramenta Ruby e como não quero Ruby no meu computador. E como quero versões Ruby homogêneas em toda a minha equipe, fiz esta imagem Docker:
# syntax = docker/dockerfile:1.10
# Certifique-se de que RUBY_VERSION corresponda à versão Ruby em .ruby-version e Gemfile
ARG RUBY_VERSION=3.4.2
ARG ALPINE_VERSION=3.20
FROM ruby:$RUBY_VERSION-alpine${ALPINE_VERSION}
# Instalar pacotes
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"]
Posso executá-lo assim:
# CONSTRUIR primeiro
docker build -t discourse_theme:latest .
# EXECUTAR WATCH
docker run -i -t --rm -v $(pwd):/root -w /root discourse_theme:latest watch .
O problema que quero relatar aqui é sobre a interatividade da CLI.
Não há interatividade de teclado enquanto estiver no Docker.
Vejo isso ao executar:
Se eu pressionar uma tecla de seta, a mensagem de ajuda desaparece, mas a opção verde “selecionada” nunca se move:
Então, acho que este é um bug na Gem. Ele detectou uma tecla pressionada, mas não moveu a seleção. Testei muitas teclas.
Outro teste que fiz foi executar o bash na imagem e iniciar o discourse_theme a partir dali, mas é o mesmo problema.
$ docker run -it --rm -v $(pwd):/root -w /root --entrypoint /bin/bash discourse_theme:latest
9f5736f3265e:~# discourse_theme watch .
Isso é um comportamento normal para ferramentas CLI Ruby ou há um bug? Obrigado

