如何在亞馬遜Linux容器上運行aws cli?

如何在亞馬遜Linux容器上運行aws cli?

我想將 amazon linux 命令作為 gitlab 管道的一部分運行。

因此,請嘗試使用 docker 映像作為運行程序,amazonlinux:最新

因此,連接到 docker 容器並執行以下命令。

yum -yq install aws-cli

它安裝了 aws-cli

然後,設定aws cli。

aws configure set region $AWS_REGION
aws configure set aws_access_key_id $AWS_ACCESS_KEY
aws configure set aws_secret_access_key $AWS_SECRET_KEY
aws configure set plugins.bolt awscli-plugin-bolt

然後執行以下命令來檢查身份,但出現錯誤,因為 aws-cli-plugin-bolt 不存在。

aws sts get-caller-identity

然後運行 Pythonon pip install 相同的並得到 python 2.7 棄用錯誤和模組未找到。

pip install awscli-plugin-bolt
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip install --user` instead.
ERROR: Could not find a version that satisfies the requirement awscli-plugin-bolt (from versions: none)
ERROR: No matching distribution found for awscli-plugin-bolt

因此,使用以下命令和參考將 python 更改為 python 3 作為預設版本

amazon-linux-extras enable python3.8
yum install python3.8
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

然後使用pip3安裝螺栓堵漏。

yum install python3-pip
pip3 install awscli-plugin-bolt

但是,下面的命令仍然尋找 python 2 並且失敗。

aws sts get-caller-identity

因此,刪除了該容器並建立了一個新容器,第一步將 python 版本 3 變更為預設容器。

但這一次,aws-cli 的 yum 安裝本身就失敗了。

 bash-4.2# yum -yq install aws-cli
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

請建議如何從 amazonlinux docker 映像存取 aws cli 指令。

如果我將圖像更改為,它似乎可以工作

  image: 
    name: amazon/aws-cli
    entrypoint: [""]

這樣我就不需要自己安裝aws cli了。但預設情況下它是 3.7 附帶的,如何將其更改為圖像的一部分。主要問題是,在 gitlab 中,上面的映像正在工作,但透過 docker run 我無法直接使用該映像。只有個別 aws 命令它立即接受並關閉容器

相關內容