2016-03-03 18 views
8

bu küçük DockerfileAlpine 3.3, Python 2.7.11, urllib2 neden SSL:

FROM alpine:3.3 
RUN apk --update add python 
CMD ["python", "-c", "import urllib2; response = urllib2.urlopen('https://www.python.org')"] 

docker run -it --rm alpine-py/01 ile çalışan sonra docker build -t alpine-py/01 . ile Bina ve sahip CERTIFICATE_VERIFY_FAILED aşağıdaki çıktı üretmesi

Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
    File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 431, in open 
    response = self._open(req, data) 
    File "/usr/lib/python2.7/urllib2.py", line 449, in _open 
    '_open', req) 
    File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 1240, in https_open 
    context=self._context) 
    File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open 
    raise URLError(err) 
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)> 

Dün yaratır py-cryptograpy'un derlenmemesine neden olan son OpenSSL 1.0.2g sürümü tarafından ısırıldım. Neyse ki, py-cryptography'dan çocuklar, birkaç saat sonra PyPI'de yeni bir versiyon yayınladılar. Sorun, OpenSSL'deki bir işlevin yeni bir imza almasıydı.

Bu sorunla ilgili olabilir mi, yoksa bir şey mi eksik?

cevap

10

Genel TİS imzalanan certs doğrulamak mümkün ca-sertifikalarını yüklemeniz gerekir:

FROM alpine:3.3 
RUN apk --no-cache add python ca-certificates 
CMD ["python", "-c", "import urllib2; response = urllib2.urlopen('https://www.python.org')"] 
+0

Teşekkürler, bu beni gerçekten kurtardı. –

0

libssl yama

FROM alpine:3.3 
RUN apk -U upgrade && \ 
    apk -U add python ca-certificates && \ 
    update-ca-certificates 
CMD ["python", "-c", "import urllib2; response = urllib2.urlopen('https://www.python.org')"] 
ile yükseltilmesi gerekiyor gibi Alpine yükseltmeniz gerekir bu yükselteceğiz yükseltme -u

apk:

  • libcrypto1.0 (1.0.2e-r0 -> 1.0.2g-r0)
  • libssl1.0 (1.0.2e-rO -> 1.0.2g-r0)
+0

evet, teşekkürler, kabul edilen cevap zaten bana "ca-sertifikaları" eklemem gerektiğini belirterek oldu. Oh, anladım, benim durumumda yükseltme gerekli değildi, ama ipucu için teşekkürler, bazen işe yarayabilir. –

+0

Ancak bu yükseltmeler yine de uygulanmıyor mu? Python-dev'i kurarken, tüm kullanılmış kütüphaneleri de geliştirdiğimi görebiliyordum. Apk için –

+0

, yükseltme "Şu anda yüklü paketleri yükseltin". Alpin daha sonraki versiyonlarında libssl ve libcrypto için gerekli olan bir yama vardır. Eklerken, yani apk python-dev'i eklerken, bu paket için talep edilen bağımlıları çekecektir - bu da aynı olmayabilir. –