Elastic Beanstalk 上的 Docker => 使用环境配置运行终端

Posted

技术标签:

【中文标题】Elastic Beanstalk 上的 Docker => 使用环境配置运行终端【英文标题】:Docker on Elastic Beanstalk => Run terminal with environment configuration 【发布时间】:2019-06-30 23:03:25 【问题描述】:

使用单个 Docker 容器运行 EBS。我已经使用 EBS 的环境变量配置来设置连接字符串等内容。

我想连接到一台机器并在一个新容器中运行一个终端。

这很简单,我只需要:

eb ssh

然后

sudo docker run -it my-image bash

但是,我希望终端环境与应用程序具有相同的配置(想想 heroku 运行)。

看起来环境是为 /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh 中运行的实际应用程序组装的,但我没有任何运气来适应我的目的。

是否有经过批准的方法来完成此操作?

【问题讨论】:

【参考方案1】:

这个问题与https://***.com/questions/31572970/how-to-run-rails-migrations-and-seeding-in-amazon-elastic-beanstalk-single-conta/31932687#31932687_ 密切相关,我正在使用@nmott 的答案:

#! /usr/bin/env bash

. /opt/elasticbeanstalk/hooks/common.sh

EB_SUPPORT_FILES=$(/opt/elasticbeanstalk/bin/get-config container -k support_files_dir)

EB_CONFIG_DOCKER_ENV_ARGS=()

while read -r ENV_VAR; do
  EB_CONFIG_DOCKER_ENV_ARGS+=(--env "$ENV_VAR")
done < <($EB_SUPPORT_FILES/generate_env)

docker run --rm "$EB_CONFIG_DOCKER_ENV_ARGS[@]" -it <image> bash

【讨论】:

以上是关于Elastic Beanstalk 上的 Docker => 使用环境配置运行终端的主要内容,如果未能解决你的问题,请参考以下文章