docker ubuntu / bin / sh: 1: locale-gen: nie znaleziono


101

Umieściłem poniższe kody ustawień regionalnych w moim pliku docker,

FROM node:4-onbuild

# Set the locale
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

ale daje mi błąd

/bin/sh: 1: locale-gen: not found
The command '/bin/sh -c locale-gen en_US.UTF-8' returned a non-zero code: 127

dowolny pomysł?


13
Może musisz zainstalować localesza pomocą sudo apt-get -y install locales?
edwinksl

Odpowiedzi:


198

Dzięki za komentarz, edwinksl . Zaktualizowałem mój plik dockerfile poniżej, który rozwiązał błąd locale-gen:

FROM node:4-onbuild

# Set the locale
RUN apt-get clean && apt-get update && apt-get install -y locales
RUN locale-gen en_US.UTF-8

29
Aby zwiększyć efektywność, powinieneś unikać wielu RUNinstrukcji, zwłaszcza gdy są one blisko powiązane. Coś takiego RUN apt-get clean && apt-get -y update && apt-get install -y locales && locale-gen en_US.UTF-8stworzyłoby jedną warstwę zamiast trzech.
tripleee

8
Może update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8się też przyda askubuntu.com/a/505424/196423
koppor

1
Aby zachować zdrowy rozsądek, nie będziesz chciał przechowywać wszystkich swoich poleceń w jednym
RUNIE

0
apt-get install -y locales
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8

localedef jest również dobry w użyciu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.