Sho*_*orn 5 python aws-cli alpine-linux
语境
我有一个基于postgres:11-alpine过去工作过的 dockerfile (可能是自上次构建以来的几个月),其定义如下:
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/*
Run Code Online (Sandbox Code Playgroud)
我最近尝试在升级到 postgres 12 之前重建它,但图像构建失败:
ERROR: unsatisfiable constraints:
python (missing):
required by: world[python]
Run Code Online (Sandbox Code Playgroud)
我猜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/*
Run Code Online (Sandbox Code Playgroud)
这看起来很有效,但是在运行aws命令时它失败并出现错误:
ModuleNotFoundError: No module named 'six'
Run Code Online (Sandbox Code Playgroud)
题
如何解决这个问题,这样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/*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1433 次 |
| 最近记录: |