Generate a UTF-8 locale in the ramekin image
Ruby reads source in the default external encoding, and without a
generated locale it falls back to US-ASCII, so steep hangs on the em
dashes in this repo's comments instead of failing.

Assisted-by: GLM-5.3 via pi
change zvsztwktquvwwwswrooupvsupzltmrup
commit 2fa5ee919ad889c680c029e4183402ae4802a22e
author Alpha Chen <alpha@kejadlen.dev>
date
parent svzxvxyz
diff --git a/.ramekin/Dockerfile b/.ramekin/Dockerfile
index a32b31a..eb27630 100644
--- a/.ramekin/Dockerfile
+++ b/.ramekin/Dockerfile
@@ -13,12 +13,22 @@ ENV RUBY_VERSION=${RUBY_VERSION}
 
 # Toolchain and headers for building Ruby and for any native gem that lacks a
 # precompiled binary (nokogiri and puma usually ship one, but keep these).
+# locales because RBS reads source in the default external encoding and this
+# repo's comments carry em dashes: without a generated UTF-8 locale, steep's
+# worker dies on them as US-ASCII and the master waits on it forever — a hang,
+# not an error.
 RUN apt-get update && apt-get install -y --no-install-recommends \
       build-essential autoconf bison \
       libssl-dev libyaml-dev libreadline-dev zlib1g-dev libffi-dev \
-      ca-certificates wget \
+      ca-certificates wget locales \
  && rm -rf /var/lib/apt/lists/*
 
+# A locale named in the environment but never generated is as good as absent
+# — Ruby falls back to US-ASCII — so generate it and set it as the default.
+RUN sed -i 's/^# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
+ENV LANG=en_US.UTF-8 \
+    LC_ALL=en_US.UTF-8
+
 RUN wget -q "https://cache.ruby-lang.org/pub/ruby/${RUBY_VERSION%.*}/ruby-${RUBY_VERSION}.tar.gz" \
  && tar -xzf "ruby-${RUBY_VERSION}.tar.gz" \
  && cd "ruby-${RUBY_VERSION}" \