docker ubuntu/bin/sh:1:locale-gen:未找到

Ham*_*mer 80 ubuntu docker

我将下面的语言环境设置代码放入我的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
Run Code Online (Sandbox Code Playgroud)

但它给了我错误

/bin/sh: 1: locale-gen: not found
The command '/bin/sh -c locale-gen en_US.UTF-8' returned a non-zero code: 127
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Ham*_*mer 161

感谢您的评论,edwinksl.我更新了我的dockerfile,解决了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
Run Code Online (Sandbox Code Playgroud)

  • 为了提高效率,您需要避免多个`RUN`语句,特别是当它们与此类密切相关时.比如`RUN apt-get clean && apt-get -y update && apt-get install -y locales && locale-gen en_US.UTF-8`会创建一个单层而不是三层. (25认同)
  • 也许`更新语言环境LC_ALL =的en_US.UTF-8 LANG =的en_US.UTF-8`也是有用https://askubuntu.com/a/505424/196423 (7认同)
  • 为了保持理智,您需要避免在一次运行中将所有命令存储在一起 (2认同)

Iza*_*ana 21

apt-get install -y locales
localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

localedef 也很好用。