docker ubuntu / bin / sh: 1: locale-gen: introuvable

96

J'ai mis les codes de paramètres régionaux ci-dessous dans mon 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

mais ça me donne l'erreur

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

une idée?

Marteau
la source
13
Peut-être devez-vous installer en localesutilisant sudo apt-get -y install locales?
edwinksl

Réponses:

189

Merci pour votre commentaire, edwinksl . J'ai mis à jour mon dockerfile ci-dessous, ce qui a résolu l'erreur 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
Marteau
la source
26
Pour plus d'efficacité, vous voudrez éviter les RUNdéclarations multiples , en particulier lorsqu'elles sont étroitement liées comme celle-ci. Quelque chose comme RUN apt-get clean && apt-get -y update && apt-get install -y locales && locale-gen en_US.UTF-8créerait une seule couche au lieu de trois.
tripleee
8
Peut update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8- être est également utile askubuntu.com/a/505424/196423
koppor
Pour garder la raison, vous voudrez éviter de cacher toutes vos commandes ensemble dans un seul RUN
mihai