gitlab パイプラインの一部として Amazon Linux コマンドを実行したい。
そこで、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
次に、以下のコマンドを実行して ID を確認しましたが、aws-cli-plugin-bolt が存在しないためにエラーが発生しました。
aws sts get-caller-identity
次に、同じ目的で python 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 コマンドのみが受け入れられ、すぐにコンテナが閉じられます。