我運行以下命令:
ssh -i ${SSH_KEY_PATH} ${SSH_SERVER_URI} "export $(grep -v '^#' /home/ubuntu/code/.env.prod | xargs -d '\n') && aws ecr get-login --region eu-central-1"
并得到以下錯誤:
Unable to locate credentials. You can configure credentials by running "aws configure".
看起來環境變數不可訪問。那么如何加載以便我可以通過 AWS CLI 登錄到 aws?
uj5u.com熱心網友回復:
為什么它壞了
當您放入$(...)雙引號字串時,它會在評估該字串時運行,這是在ssh 啟動之前。因此,該grep命令在您的本地計算機上運行,??該計算機可能沒有相關檔案(或者至少與遠程副本的內容不同)。
如何避免問題
你不需要$(...)或xargs根本不需要export。用于set -a使所有變數自動匯出,然后源檔案,set a用于在完成后關閉自動匯出:
ssh -i "$SSH_KEY_PATH" "$SSH_SERVER_URI" \
'set -a; . /home/ubuntu/code/.env.prod; aws ecr get-login --region eu-central-1'
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/414667.html
標籤:
上一篇:使用管道計算輸出中的行數
下一篇:從slug中省略檔案擴展名
