2016-03-29 10 views
0

Ben docker için yeni ve docker görüntüyü oluştururken birisi bu hatadan kurtulmama yardımcı olabilir eğer takdir ediyorum. Bir tür yerel ayar hatası veriyor. Bu hatayı nasıl kurtarabilirim?Bina python tabanlı docker ile Locale.Error

Collecting pip 
Downloading pip-8.1.1-py2.py3-none-any.whl (1.2MB) 
Collecting setuptools 
Downloading setuptools-20.3.1-py2.py3-none-any.whl (508kB) 
Collecting wheel 
Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB) 
Installing collected packages: pip, setuptools, wheel 
Successfully installed pip-8.1.1 setuptools-20.3.1 wheel-0.29.0 
+ pip install --no-cache-dir --upgrade pip==8.0.2 
Traceback (most recent call last): 
File "/usr/bin/pip", line 11, in 
sys.exit(main()) 
File "/usr/lib/python2.7/site-packages/pip/__init__.py", line 215, in main 
locale.setlocale(locale.LC_ALL, '') 
File "/usr/lib64/python2.7/locale.py", line 547, in setlocale 
return _setlocale(category, locale) 
locale.Error: unsupported locale setting 
The command '/bin/sh -c set -ex && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" && curl -fSL 'https://bootstrap.pypa.io/get-pip.py' | python2 && pip install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION' returned a non-zero code: 1 

Bu benim Dockerfile geçerli:

FROM mybase:1.0.7 

RUN set -x \ 
&& yum install -y python-devel libffi-devel python-cffi \ 
&& yum clean all 

ENV LANG C.UTF-8 

ENV GPG_KEY C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF 

ENV PYTHON_VERSION 2.7.11 

ENV PYTHON_PIP_VERSION 8.0.2 

RUN set -ex \ 
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ 
&& curl -fSL 'https://bootstrap.pypa.io/get-pip.py' | python2 \ 
&& pip install --no-cache-dir --upgrade pip==$PYTHON_PIP_VERSION 

RUN pip install --no-cache-dir virtualenv 

CMD ["python2"] 

cevap

1

locale.setlocale docs locale geçerli olması gerektiğini söylüyorlar. Boş bir dize iletilirse, yerel ayarı ayarlamak için LANG değişkeni kullanılır. Bu hata büyük olasılıkla sizin LANG desteklediğiniz bir yerel ayar olmadığından kaynaklanıyor

Docker komut dosyanızda LANG değerini C.UTF-8 olarak ayarladınız. Görünüşe göre, C.UTF-8 glibc'de desteklenen bir yerel ayar değildir ve Python'da tahmin ediyorum (Bkz. this ve this).

LANG'unuzu en_US.UTF-8 (Bilgisayarımdaki varsayılan) gibi desteklenen bir türe ayarlayabilirsiniz.

Python-2.6 üzerinde

, ben olsun şu sonuçlar

Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import locale 
>>> locale.setlocale(locale.LC_ALL, "") 
'en_US.utf8' 
>>> locale.setlocale(locale.LC_ALL, "C.UTF-8") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib64/python2.6/locale.py", line 513, in setlocale 
    return _setlocale(category, locale) 
locale.Error: unsupported locale setting 
>>> locale.setlocale(locale.LC_ALL, "en_US.UTF-8") 
'en_US.UTF-8' 
>>> locale.setlocale(locale.LC_ALL, "de_DE.UTF-8") 
'de_DE.UTF-8' 
Sen

$ locale -a 
çalıştırarak bilgisayarınızda kullanılabilir olan yerel görüntüleyebilirsiniz