3 回答

TA貢獻1806條經驗 獲得超8個贊
我設置環境變量docker-compose.yml并在控制臺中設置值。
environment:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
$ export AWS_ACCESS_KEY_ID=$(aws --profile default configure get aws_access_key_id)
$ export AWS_SECRET_ACCESS_KEY=$(aws --profile default configure get aws_secret_access_key)
creds := credentials.NewStaticCredentials(os.Getenv("AWS_ACCESS_KEY_ID"), os.Getenv("AWS_SECRET_ACCESS_KEY"), "")

TA貢獻1784條經驗 獲得超9個贊
您可以使用環境變量傳遞您的憑據,如下所示:
AWS_ACCESS_KEY_ID=xxx
AWS_SECRET_ACCESS_KEY=yyy
所以你的 docker-compose 看起來像:
version: '3'
services:
? api:
? ? build:
? ? ? dockerfile: Dockerfile.dev
? ? ? context: ./api
? ? volumes:
? ? ? - ./api:/app
? ? environment:
? ? ? AWS_ACCESS_KEY_ID: YOUR-ACCESS-KEY-ID
? ? ? AWS_SECRET_ACCESS_KEY: YOUR-SECRET-KEY
? ? ports:
? ? ? - 2345:2345
? ? depends_on:
? ? ? - db
? ? tty: true
您不應該在生產中執行此操作,而應該使用 IAM 配置文件,這既是為了簡單起見,避免到處都有大量密鑰,也是為了安全性,避免在日志或任何地方泄露密鑰,但它非常適合開發目的。

TA貢獻1829條經驗 獲得超9個贊
我通過將主機 .aws 目錄掛載到 docker 容器 docker-compose.yml 來使 AWS SDK for Go V2 滿意:
volumes: - $HOME/.aws/credentials:/.aws/credentials:ro
SDK 會在目錄.aws
下查找目錄$HOME
,因此您可能需要找出HOME
docker 容器中的 env,然后進行相應更新。
- 3 回答
- 0 關注
- 241 瀏覽
添加回答
舉報