Docker Alpine Linux python(缺失)

AGo*_*nov 34 docker alpine-linux

我有一个从 GitLab 部署我的容器的管道。上次部署是 5 天前,没有任何问题。今天我部署它并收到以下错误:

$ apk add --no-cache curl python py-pip
 fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
 fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
 ERROR: unsatisfiable constraints:
   python (missing):
     required by: world[python]
Run Code Online (Sandbox Code Playgroud)

我的工作定义是:

my-deploy:
  type: my-deploy
  image: docker:stable
  script:
    - apk update
    - apk add --no-cache curl python py-pip <-- Here the erorr happens
    ...
Run Code Online (Sandbox Code Playgroud)

BMW*_*BMW 61

你能试试这个命令吗?

apk add --update --no-cache curl py-pip
Run Code Online (Sandbox Code Playgroud)

它将python3使用 pip 自动安装。

我的理解是,python(版本 2)已从最新的 alpine 软件包中退役。

  • 不仅回答如何解决问题,而且首先回答为什么会出现问题,这样答案就更有价值。如果您已经遇到此问题,那么提供上下文是“最佳”方法(如果您愿意,请检查[指南](https://stackoverflow.com/help/how-to-answer))。 (4认同)
  • [日落 Python 2](https://www.python.org/doc/sunset-python-2/) (3认同)

AGo*_*nov 23

从Docker 的 repo 上的这个问题:

这在将我们的基地从 alpine:3.11 更新到 alpine:3.12 时“坏了”

为了修复它,您需要直接指定 Python 的版本,例如:

apk add python2
// or
apk add python3
Run Code Online (Sandbox Code Playgroud)

  • 我正在使用 docker windows 桌面应用程序。我在入门存储库中收到此错误。快点!入门有问题吗?我用“RUN apk add --no-cache python3 g++ make”更新了 DockerFile“RUN apk add --no-cache python g++ make”。这解决了这个问题。谢谢。 (4认同)

Ven*_*sky 19

对于未来的读者:

我遇到了类似的错误node:14-alpine

ERROR: unable to select packages:  
  python2 (no such package):  
    required by: world[python2]
Run Code Online (Sandbox Code Playgroud)

但我无法使用这个问题中列出的其他答案,因为我确实需要python2并且运行apk add python2给了我上面的错误。

一段时间后,我意识到在最新的 alpine 版本中,只有python3没有 python2)。

因此,解决方案是使用旧版本的 alpine python2alpine v3.15)。

所以修复方法node:14-alpine改为node:14-alpine3.15

我知道这不是完全相同的错误,但是在尝试找到错误的答案时,我总是到这里,所以我将其留给可能遇到相同问题的未来读者。


小智 5

我已按照此修复 https://gitlab.alpinelinux.org/alpine/aports/-/issues/11605

更新代码以安装 python3:

before_script:
- apk add --update --no-cache curl jq py3-configobj py3-pip py3-setuptools python3 python3-dev
Run Code Online (Sandbox Code Playgroud)