尽管使用 pipelinev 修复了依赖项,为什么我在 docker 中的 python 项目在上次成功启动一年后仍未启动?

问题描述 投票:0回答:1

我有一个 python 项目,之前在 docker 容器中成功运行,所有依赖项和包版本都使用 pipelinev 修复。然而,当我在一年后再次尝试在 Docker 中启动该项目时,遇到了几个错误。

我试图理解为什么它以前有效但现在失败了。以下是一些需要考虑的要点:

  • 固定依赖项:我确保所有依赖项都固定在 Pipfile.lock 中。
  • Docker 设置:自上次成功运行以来,我的 dockerfile 和 docker-compose.yml 没有更改。
  • 错误消息:由于软件包不兼容,我看到各种错误。

我考虑过更新所有包和库的版本,但这是一个坏主意,因为之后项目代码可能部分或完全停止工作。

请不要严厉地评判这个问题,因为我真的不知道该怎么办。

我将非常感谢任何帮助!

python docker package dockerfile legacy-code
1个回答
0
投票

您可以从四个方向解决这个问题:

  1. 检查 Docker 基础镜像:尝试检索一年前上次运行时基础镜像的哈希值,并使用该版本。
  2. 取消固定所有版本:首先取消固定所有依赖项的版本,看看是否可以解决问题。如果不起作用,您可以根据需要逐步重新引入特定封装的引脚。
  3. 选择性取消固定:仅取消固定与错误直接相关的依赖项,并逐步取消固定更多依赖项,直到不再遇到任何问题。
  4. 重建依赖项:删除所有依赖项并将它们一一添加回来,解决错误。

话虽这么说,这个过程仍然可能复杂且耗时,因为识别和解决根本原因可能并不总是那么简单。

© www.soinside.com 2019 - 2024. All rights reserved.