[英]add a secret to container without exposing file locations to source control
我想將我的 aws credentials
文件添加到 docker 容器中,以便它可以訪問 AWS api。 憑據文件存在於我的主機中/home/user/.aws/credentials
從命令行運行容器時,我可以
docker run --rm -d -v /home/user/.aws/:/.aws:ro -d \
--env AWS_CREDENTIAL_PROFILES_FILE=/.aws/credentials proj:latest
在 docker compose 中,我可以使用volumes
屬性掛載.aws
目錄,如下所示:
services:
proj:
volumes:
- aws_credentials:/.aws:ro
environment:
AWS_CREDENTIAL_PROFILES_FILE: /.aws/credentials
volumes:
aws_credentials:
external: true
我的問題是,如何用數據填充外部 aws_credentials 卷?
無效的方法:
services:
proj:
volumes:
- /home/user/.aws/:/.aws:ro #<-- DO NOT WANT THIS IN SOURCE CONTROL
environment:
AWS_CREDENTIAL_PROFILES_FILE: /.aws/credentials
我想出的一個答案是像這樣使用環境變量:
services:
proj:
secrets:
- aws_credentials
environment:
AWS_CREDENTIAL_PROFILES_FILE: /run/secrets/aws_credentials
secrets:
aws_credentials:
file: ${awscredfile}
並確保 awscredfile 加載到 docker compose 的父進程的環境中,或者在帶有--env-file
參數的 env 文件中傳遞給 docker compose。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.