如何通过 Elasticbeanstalk 配置文件(使用 Docker)访问环境变量?

Posted

技术标签:

【中文标题】如何通过 Elasticbeanstalk 配置文件(使用 Docker)访问环境变量?【英文标题】:How do you get access to environment variables via Elasticbeanstalk configuration files (using Docker)? 【发布时间】:2014-12-31 17:27:49 【问题描述】:

例如,如果我想挂载一个由环境变量定义的特定卷。

【问题讨论】:

【参考方案1】:

我最终使用了以下代码:

---
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/pre/02my_setup.sh":
    owner: root
    group: root
    mode: "000755"
    content: |
      #!/bin/bash

      set -e

      . /opt/elasticbeanstalk/hooks/common.sh

      EB_CONFIG_APP_CURRENT=$(/opt/elasticbeanstalk/bin/get-config container -k app_deploy_dir)
      EB_SUPPORT_FILES_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k support_files_dir)

      # load env vars
      eval $($EB_SUPPORT_FILES_DIR/generate_env | sed 's/$/;/')

【讨论】:

【参考方案2】:

您可以在 bash 脚本中使用 /opt/elasticbeanstalk/bin/get-config environment

例子:

# .ebextensions/efs_mount.config

commands:
01_mount:
    command: "/tmp/mount-efs.sh"

files:
"/tmp/mount-efs.sh":
    mode: "000755"
    content : |
        #!/bin/bash

        EFS_REGION=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_REGION')
        EFS_MOUNT_DIR=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_MOUNT_DIR')
        EFS_VOLUME_ID=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_VOLUME_ID')

【讨论】:

以上是关于如何通过 Elasticbeanstalk 配置文件(使用 Docker)访问环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用单个 cloudformation 模板创建多个 Elasticbeanstalk 环境

如何在 ElasticBeanstalk 上安装和配置 Redis

如何覆盖我的 ElasticBeanstalk 应用程序的负载均衡器和容量等配置

如何在 AWS elasticbeanstalk 中配置 sonarqube 7.1

ElasticBeanstalk 与 Docker:如何使用来自 aws cli 的创建环境

如何配置github操作将docker容器部署到aws elasticbeanstalk多容器环境