docker ubuntu / bin / sh: 1: locale-gen: не найдено


101

Я поместил приведенные ниже коды настроек локали в свой файл докеров,

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

но это дает мне ошибку

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

любая идея?


13
Может надо с localesпомощью устанавливать sudo apt-get -y install locales?
edwinksl

Ответы:


199

Спасибо за ваш комментарий, edwinksl . Я обновил свой файл докеров ниже, который решил ошибку 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
Для эффективности вам следует избегать использования нескольких RUNоператоров, особенно если они так тесно связаны. Что-то вроде RUN apt-get clean && apt-get -y update && apt-get install -y locales && locale-gen en_US.UTF-8создания одного слоя вместо трех.
Tripleee

8
Может быть update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8, также пригодится askubuntu.com/a/505424/196423
koppor

1
Чтобы сохранить рассудок, вы не захотите спрятать все свои команды за один ЗАПУСК
Михай

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 тоже можно использовать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.