docker ubuntu / bin / sh: 1: locale-gen: não encontrado

95

Eu coloquei os códigos de configuração de localidade abaixo em meu dockerfile,

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

mas me dá o erro

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

qualquer ideia?

Martelo
fonte
13
Talvez você precise instalar localesusando sudo apt-get -y install locales?
edwinksl

Respostas:

188

Obrigado pelo seu comentário, edwinksl . Atualizei meu dockerfile abaixo, o que resolveu o erro 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
Martelo
fonte
26
Para maior eficiência, você deve evitar várias RUNdeclarações, especialmente quando elas estão intimamente relacionadas como esta. Algo como RUN apt-get clean && apt-get -y update && apt-get install -y locales && locale-gen en_US.UTF-8criaria uma única camada em vez de três.
tripleee
8
Talvez update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8também seja útil askubuntu.com/a/505424/196423
koppor
Para manter sua sanidade, você vai querer evitar esconder todos os seus comandos juntos em um RUN
mihai