docker-compose.yml 中的 AWS Parameter Store

问题描述

我将所有秘密数据保存到 AWS Parameter Store 中,我的应用程序使用 docker-compose 运行,我尝试在 aws ssm get-parameters 内评估 docker-compose.yaml

version: "3.7"

services:
  db:
    image: postgres
    restart: always
    volumes:
      - /home/ec2-user/dbdata:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: $$(aws ssm get-parameters --name DB_USERNAME --region eu-north-1 --output text --query Parameters[].Value)
      POSTGRES_PASSWORD: $$(aws ssm get-parameters --name DB_PASSWORD --region eu-north-1 --output text --with-decryption --query Parameters[].Value)
      POSTGRES_DB: $$(aws ssm get-parameters --name DB_NAME --region eu-north-1 --output text --query Parameters[].Value)
    ports:
      - 5432:5432

  auth:
    build: .
    restart: always
    environment:
      DB_ENDPOINT: $$(aws ssm get-parameters --name DB_ENDPOINT --region eu-north-1 --output text --query Parameters[].Value)
      DB_USERNAME: $$(aws ssm get-parameters --name DB_USERNAME --region eu-north-1 --output text --query Parameters[].Value)
      DB_PASSWORD: $$(aws ssm get-parameters --name DB_PASSWORD --region eu-north-1 --output text --with-decryption --query Parameters[].Value)
      JWT_KEY: $$(aws ssm get-parameters --name JWT_KEY --region eu-north-1 --output text --query Parameters[].Value)
      JWT_EXPIRED: $$(aws ssm get-parameters --name JWT_EXPIRED --region eu-north-1 --output text --query Parameters[].Value)
    depends_on:
      - db
    links:
      - db
    ports:
      - 80:80

但是构造 $$(<command>) 不起作用。

我得到的不是参数存储中的预期值

$(get-parameters --name DB_EN​​DPOINT --region eu-north-1 --output text --query 参数[].Value)

我知道如何通过准备一个export MY_VAR="$(get-parameters ...)" 这样可以理解的脚本来做到这一点。

但问题是我能否仅在 docker-compose.yaml获取 Parameter Store 值(如果是),如何获取

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)