是否可以在 alpine Linux 上安装 Google Cloud CLI,而不安装捆绑版本的 python?

问题描述 投票:0回答:1

问题背景

我正在构建一个 Alpine Linux docker 镜像,用作(相对)轻量级的 CI 镜像。在此图中,我需要安装 Google Cloud

gcloud
CLI。

我正在从我的

Dockerfile
安装 Python,如下所示:

RUN apk add python3

在 Alpine Linux 3.20 上(2024 年 12 月 3 日),这将安装 Python 3.12.7。安装某些版本的 python 似乎是运行 Google Cloud CLI 安装脚本的先决条件。

/ # cat /etc/alpine-release 
3.20.0
/ # python --version
Python 3.12.7

Google Cloud CLI 声称与 Python 3.8 至 3.13 兼容 - 源代码,位于“Linux”选项卡下

我正在使用这样的脚本安装 Google Cloud CLI,从正在构建的容器内部运行:

mkdir -p /usr/local/gcloud
curl -s https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz | tar -xz -C /usr/local/gcloud
/usr/local/gcloud/google-cloud-sdk/install.sh --quiet --usage-reporting false

当我运行此脚本作为 Docker 映像构建的一部分时,我看到以下内容:

#17 8.452 Your current Google Cloud CLI version is: 502.0.0
#17 8.452 Installing components from version: 502.0.0
#17 8.452
#17 8.495 ┌─────────────────────────────────────────────────────────────────────────────┐
#17 8.495 │                     These components will be installed.                     │
#17 8.496 ├─────────────────────────────────────────────────────┬────────────┬──────────┤
#17 8.496 │                         Name                        │  Version   │   Size   │
#17 8.497 ├─────────────────────────────────────────────────────┼────────────┼──────────┤
#17 8.497 │ BigQuery Command Line Tool                          │      2.1.9 │  1.7 MiB │
#17 8.499 │ BigQuery Command Line Tool (Platform Specific)      │      2.1.8 │  < 1 MiB │
#17 8.501 │ Bundled Python 3.11 (Platform Specific)             │     3.11.9 │ 74.4 MiB │
#17 8.503 │ Cloud Storage Command Line Tool                     │       5.31 │ 11.3 MiB │
#17 8.504 │ Cloud Storage Command Line Tool (Platform Specific) │       5.30 │  < 1 MiB │
#17 8.506 │ Google Cloud CLI Core Libraries (Platform Specific) │ 2024.08.30 │  < 1 MiB │
#17 8.507 │ Google Cloud CRC32C Hash Tool (Platform Specific)   │      1.0.0 │  1.3 MiB │
#17 8.509 │ gcloud cli dependencies (Platform Specific)         │ 2021.04.16 │  < 1 MiB │
#17 8.510 └─────────────────────────────────────────────────────┴────────────┴──────────┘

引起我注意的是~75MiB“Bundled Python 3.11”行。 我想阻止安装程序脚本下载和使用捆绑版本的 Python。 这可能吗?

我尝试过的事情

--install-python false
旗帜

当我在脚本上运行

--help
查看选项时,有一个引起了我的注意:

/usr/local/gcloud/google-cloud-sdk/install.sh --help

# ....
  --install-python INSTALL_PYTHON
                        (true/false) Attempt to install Python. MacOS only.

果然,这个标志在 Alpine Linux 上似乎没有做任何事情(我仍然看到安装脚本下载并安装 Python 3.11)。

设置
CLOUDSDK_PYTHON
环境变量

经过一番谷歌搜索后,我尝试以两种方式在我的

CLOUDSDK_PYTHON
中设置
Dockerfile
环境变量:

ENV CLOUDSDK_PYTHON="/usr/bin/python"
ENV CLOUDSDK_PYTHON="/usr/bin/python3"

都不起作用(我仍然看到安装脚本下载并安装 Python 3.11)。

对我来说不是一个解决方案:Google 提供的 Docker 容器

我了解 Google 提供了一个已安装

gcloud
CLI 的基础映像。由于与这个问题的主旨不完全相关的原因,我不能用它来消除这个问题。我必须使用不同的基于 Alpine Linux 的基础镜像。

python docker gcloud alpine-linux
1个回答
0
投票

跟随/复制我的评论。

我查看了文档,发现这部分很有趣:“请注意,x86_64 Linux 软件包包含默认首选的捆绑 Python 解释器

x86
版本(顺便说一句,是
x86_64
版本大小的一半)不会在最终图像中强制使用捆绑的Python版本。

摘自文档:

curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-linux-x86.tar.gz && \
tar -xf google-cloud-cli-linux-x86.tar.gz && \
./google-cloud-sdk/install.sh
© www.soinside.com 2019 - 2024. All rights reserved.