繁体   English   中英

如何从本地文件读取值到Docker-compose环境变量?

[英]How to read values from local file into Docker-compose environment variables?

我正在尝试通过在docker-compose.yml文件中设置环境变量,将我的AWS凭证从我的本地~/.aws/credentials文件注入Docker容器。

但我不知道如何将本地文件中的凭据读入docker-compose文件。 我该怎么做??

以下是我的AWS凭证文件的样子:

$ cat ~/.aws/credentials
[default]
aws_access_key_id = AK_FAKE_KEY_88RD3PNY
aws_secret_access_key = BividQsWW_FAKE_KEY_MuB5VAAsQNJtSxQQyDY2C

以下是我的Docker撰写文件的相关部分:

  my_service:
    build: .
    image: my_image
    environment:
         - AWS_ACCESS_KEY_ID=<What should I put here?>
         - AWS_SECRET_ACCESS_KEY=<What should I put here?>

它需要来自您的凭证文件吗?

你可以创建包含的~/aws_env_creds

AWS_ACCESS_KEY_ID=AK_FAKE_KEY_88RD3PNY
AWS_SECRET_ACCESS_KEY=BividQsWW_FAKE_KEY_MuB5VAAsQNJtSxQQyDY2C

然后

my_service:
  build: .
  image: my_image
  env_file:
    - ~/aws_env_creds

恕我直言,一般来说,在docker-compose.yml主目录进行硬编码并不是一个好主意,它对其他人来说不是可移植的。 我不反对拥有〜/ .aws /凭证,因为这是一个每个人都会遵循的惯例

my_service:
    build: .
    image: my_image
    environment:
         - AWS_ACCESS_KEY_ID
         - AWS_SECRET_ACCESS_KEY
    volumes:
         - ~/.aws:/root/.aws:ro

这个docker-compose.yml将足够灵活,它取决于机器的设置,将使用凭证文件或环境变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM