首页 > 解决方案 > Elastic Beanstalk 上的 Docker => 使用环境配置运行终端

问题描述

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

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

这很容易,我只需要:

eb ssh

接着

sudo docker run -it my-image bash

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

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

是否有经过批准的方法来实现这一目标?

标签: dockeramazon-elastic-beanstalk

解决方案


这个问题与https://stackoverflow.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

推荐阅读