语境
我有一个基于dockerfile的文件,postgres:11-alpine
该文件在过去(可能是自上次构建以来的几个月)一直在使用,其定义如下:
FROM postgres:11-alpine
RUN apk update
# install aws cli
# taken from: https://github.com/anigeo/docker-awscli/blob/master/Dockerfile
RUN \
apk -Uuv add groff less python py-pip && \
pip install awscli && \
apk --purge -v del py-pip && \
rm /var/cache/apk/*
我最近尝试在升级到postgres 12之前重建它,但是映像构建失败,并显示以下信息:
ERROR: unsatisfiable constraints:
python (missing):
required by: world[python]
我猜这python
包不见了,因为YOLO?无论如何,我都尝试python3
通过将docker文件更改为来升级到:
RUN \
apk -Uuv add groff less python3 py-pip && \
pip install awscli && \
apk --purge -v del py-pip && \
rm /var/cache/apk/*
这看起来像是可行的,但是随后在运行aws
命令时失败并显示错误:
ModuleNotFoundError: No module named 'six'
题
如何解决此问题,以免awscli
出现错误No module named 'six'
?
问题似乎实际上是由删除引起的py-pip
。据我所知,的目的apk del
是减小最终docker映像的大小。我不确定为什么py-pip
在文件使用python
软件包时删除会起作用。
因此,以下内容似乎正在工作:
RUN \
apk -Uuv add groff less python3 py-pip && \
pip install awscli && \
rm /var/cache/apk/*
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句