You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Python API项目时缺失libssl.so.1.1的解决求助

Docker部署Python API项目时缺失libssl.so.1.1的解决求助

我看到你在Docker部署Python API项目时碰到了libssl.so.1.1: cannot open shared object file: No such file or directory的报错,尝试安装libssl-dev却没解决问题,我来帮你梳理下问题根源和可行的解决办法。

首先,你的Dockerfile里有个明显的命令错误

你写的安装SSL依赖的命令少了关键的install参数,而且没有自动确认的-y选项,这会导致命令执行失败,根本没装上需要的依赖!原命令:

RUN apt-get update && apt-get libssl-dev

正确的写法应该是:

RUN apt-get update && apt-get install -y libssl1.1 libssl-dev

这里直接指定安装libssl1.1包(libssl-dev是开发包,不一定包含运行时需要的libssl.so.1.1文件),-y参数能避免构建过程中出现交互确认,保证构建顺利完成。

方案一:修正基础镜像的依赖安装(推荐)

你的基础镜像是python:3.10-slim-buster,基于Debian 10(Buster),这个系统默认是自带libssl.so.1.1的,但可能因为slim镜像的精简特性,部分包被移除了。按照上面的修正命令重新构建镜像,应该就能找到这个文件了。

另外,建议调整Dockerfile的命令顺序,先安装系统依赖,再安装Python相关包,这样能确保系统依赖在Python包安装前就准备好,避免依赖缺失:

# syntax=docker/dockerfile:1
ARG PYTHON_VERSION=3.10
FROM python:${PYTHON_VERSION}-slim-buster as base

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# 先安装系统依赖,同时清理缓存减小镜像体积
RUN apt-get update && \
    apt-get install -y libssl1.1 libssl-dev && \
    rm -rf /var/lib/apt/lists/*

COPY . /
RUN pip install pipenv

# 先装系统依赖再装PaddlePaddle,避免依赖问题
RUN pipenv run python3 -m pip install paddlepaddle-gpu==2.5.1.post102 -f https://www.paddlepaddle.org.cn/whl/linux/cudnnin/stable.html

RUN pipenv install --verbose --pypi-mirror https://pypi.tuna.tsinghua.edu.cn/simple

EXPOSE 5000

# 启动应用(替换回你的实际启动命令)
CMD ["python", "your_api_main_file.py"]

方案二:如果要使用Ubuntu 22.04的镜像

如果你想和本地系统(Ubuntu 22.04)保持一致,可以换成python:3.10-slim-jammy(Jammy是Ubuntu 22.04的代号),但Ubuntu 22.04默认用的是libssl3,没有libssl.so.1.1。这时候需要添加Debian Buster的源来安装兼容包:

RUN echo "deb http://deb.debian.org/debian buster main" >> /etc/apt/sources.list.d/buster.list && \
    apt-get update && \
    apt-get install -y --no-install-recommends libssl1.1 && \
    rm /etc/apt/sources.list.d/buster.list && \
    rm -rf /var/lib/apt/lists/*

这样临时添加Buster的源获取libssl1.1,安装后移除源,避免后续包冲突。

验证方法

构建镜像后,你可以先进入容器检查文件是否存在:

docker run -it --rm your-image-name bash

然后执行:

find / -name libssl.so.1.1

如果能找到文件路径,说明依赖安装成功,再启动你的API应用应该就不会报错了。

备注:内容来源于stack exchange,提问作者Jianing JIA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:53:17