在Python Docker镜像中安装azure-cli遇SSL错误求助
在python:3.7-alpine容器中安装azure-cli时的SSL错误排查方案
问题详情
执行RUN pip3 install azure-cli步骤时触发SSL错误:
pip._vendor.urllib3.exceptions.SSLError: [SSL: KRB5_S_TKT_NYV] unexpected eof while reading
同时提示pip版本可升级,最终命令执行失败,退出码为2。对应的Dockerfile内容如下:
FROM python:3.7-alpine RUN apk add --update git bash curl unzip make coreutils openssh shadow ARG TERRAFORM_VERSION="1.3.6" ARG svgUserId= ENV AZURE_DEFAULT_REGION=germanywestcentral RUN if ! id $svgUserId; then \ adduser svg -D &&\ usermod -u ${svgUserId} svg; \ fi RUN curl https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip > terraform_${TERRAFORM_VERSION}_linux_amd64.zip && \ unzip terraform_${TERRAFORM_VERSION}_linux_amd64.zip -d /bin && \ rm -f terraform_${TERRAFORM_VERSION}_linux_amd64.zip RUN pip3 install azure-cli ENTRYPOINT []
解决步骤
升级pip到兼容版本
旧版pip与alpine的SSL库存在兼容性问题,先升级pip再安装azure-cli:RUN pip3 install --upgrade pip && pip3 install azure-cli补充完整SSL依赖
Alpine基础镜像的SSL组件不全,需提前安装相关依赖:RUN apk add --update --no-cache openssl libssl-dev将该命令放在
pip3 install步骤之前,确保依赖就绪。切换国内PyPI镜像(针对网络类SSL异常)
若因网络波动导致SSL握手失败,可使用国内镜像源加速安装:RUN pip3 install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple && \ pip3 install azure-cli -i https://pypi.tuna.tsinghua.edu.cn/simple锁定azure-cli兼容版本
Python 3.7已停止维护,新版azure-cli不再支持该版本,可锁定到兼容的旧版本:RUN pip3 install azure-cli==2.45.0(2.45.0是已知支持Python 3.7的最后几个稳定版本之一)
内容的提问来源于stack exchange,提问作者Jananath Banuka
相关产品推荐
相关产品推荐

