首页 > 解决方案 > 阿尔卑斯山上的 Azure Cli - 如何仅安装特定的 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 是巨大的。该层> ​​600Mb。我正在寻找一种让它更苗条的方法。我看到使用 python,可以只安装 azure cli 的某些包

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

但如果我跑

az acr login

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

任何人都可以帮忙吗?

标签: pythondockerfilealpineazure-cli

解决方案


推荐阅读