Alpine上的Azure Cli如何只安装特定的python模块(否则就太庞大了)

2024-04-30 12:29:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一条在kubernetes上运行的cicd管道。图像生成器是kaniko,它必须推送到azure acr

因此,我使用以下dockerfile设置了一个kaniko+azure cli映像:

FROM gcr.io/kaniko-project/executor:latest as kaniko

FROM alpine:latest

COPY --from=kaniko /kaniko /kaniko

RUN ls /

ENV DOCKER_CONFIG /kaniko/.docker
ENV SSL_CERT_DIR=/kaniko/ssl/certs
ENV PATH $PATH:/kaniko
RUN mkdir -p /workspace
WORKDIR /workspace

ENV HOME /root
ENV USER root

RUN apk update && \
    apk add --no-cache git bash py-pip openssh-client make && \
    apk add --virtual=build gcc libffi-dev musl-dev openssl-dev python3-dev && \
    pip --no-cache-dir install -U pip && \
    pip --no-cache-dir install azure-cli && \
    apk del --purge build && \
    apk add --no-cache curl && \
    docker-credential-gcr config --token-source=env && \
    # Download kustomize
    curl -sLO $(curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases |\
    grep "browser_download.*linux_amd64"  |\
    cut -d '"' -f 4 |\
    sort -V |\
    tail -n 1) && \
    # Download kustomize sha256
    curl -sLO $(curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases |\
    grep "checksums.txt"  |\
    cut -d '"' -f 4 |\
    sort -V |\
    tail -n 1) && \
    # Verify kustomize sha256
    (cat checksums.txt | grep linux_amd64 | sha256sum -c -w) && \
    # Install kustomize
    tar xzf ./kustomize* && \
    chmod +x kustomize && \
    mv kustomize /bin/kustomize && \
    kustomize version && \
    # Cleanup kustomize
    rm checksums.txt && \
    rm kustomize*.tar.gz

效果很好。但是python azure cli是巨大的。该层为>;600兆。我在想办法让它更苗条。我看到,使用python,可以只安装azure cli的某些包

pip install azure-cli-core
pip install azure-cli-acr

但如果我跑

az acr login

找不到az可执行文件。我在任何地方都没有找到关于如何只安装特定模块的文档

有人能帮忙吗


Tags: installpipnorundevenvcachecli