有很多关于 libssl 的问题,但似乎没有人与我的问题相匹配,所以我提出了一个新问题。
我正在尝试在docker上部署我的python api项目,但是当我创建容器并运行它时,它自动退出了。通过执行docker logs container_id
,它显示了这样的错误:libssl.so.1.1:无法打开共享对象文件:没有这样的文件或目录。
我知道这个问题会发生,因为当前的docker目录不包含这些文件。所以我尝试通过将其添加到dockerfile中来修复它:
RUN apt-get update && apt-get libssl-dev
但是当我再次尝试时,仍然出现相同的错误,似乎它没有安装,当我尝试时CMD find / -name libssl.so.1.1
,我在日志中没有得到任何信息。
系统是 Ubuntu 22.04,我的完整dockerfile如下:
# syntax=docker/dockerfile:1
# Comments are provided throughout this file to help you get started.
# If you need more help, visit the Dockerfile reference guide at
# https://docs.docker.com/engine/reference/builder/
ARG PYTHON_VERSION=3.10
FROM python:${PYTHON_VERSION}-slim-buster as base
# Prevents Python from writing pyc files.
ENV PYTHONDONTWRITEBYTECODE=1
# Keeps Python from buffering stdout and stderr to avoid situations where
# the application crashes without emitting any logs due to buffering.
ENV PYTHONUNBUFFERED=1
# Copy the project into the container
COPY . /
# Install pipenv
RUN pip install pipenv
#
RUN pipenv run python3 -m pip install paddlepaddle-gpu==2.5.1.post102 -f https://www.paddlepaddle.org.cn/whl/linux/cudnnin/stable.html
# Install missing openssl dependencies
RUN apt-get update && apt-get libssl-dev
# Install dependencies
RUN pipenv install --verbose --pypi-mirror https://pypi.tuna.tsinghua.edu.cn/simple
# Expose the port that the application listen on
EXPOSE 5000
# Run the application
CMD find / -name libssl.so.1.1
除了上面列出的方法外,我没有做其他尝试来解决这个问题。