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 关注
- 176 浏览
添加回答
举报