簡體   English   中英

在 Alpine 上安裝 awscli - 如何修復“ModuleNotFoundError: No module named 'six'”

[英]Installing awscli on Alpine - how to fix “ModuleNotFoundError: No module named 'six'”

語境

我有一個基於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/*

我最近嘗試在升級到 postgres 12 之前重建它,但圖像構建失敗:

 ERROR: unsatisfiable constraints:
              python (missing):
                required by: world[python]

我猜python package 現在不見了,因為 YOLO? 不管怎樣,我嘗試通過將python3文件更改為:

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 圖像的大小。 我不確定為什么在文件使用python package 時刪除py-pip會起作用。

所以以下現在似乎正在工作:

RUN \
    apk -Uuv add groff less python3 py-pip && \
    pip install awscli && \
    rm /var/cache/apk/*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM