我正在使用docker将Rails应用程序部署到Elastic Beanstalk,到目前为止一切都已成功.我正处于应用程序需要运行数据库的迁移和种子的位置,而我无法确定我需要如何继续进行.看来该/.ebextensions文件夹中的任何命令都在主机的上下文中运行,而不是在docker容器中运行.那是对的吗?
我可以在启动后运行命令在docker容器内执行迁移,但是如何确保迁移仅在单个实例上运行?是否有环境变量或其他方式我可以在docker容器中告诉哪个机器是领导者?
更新:我在Amazon Elastic Beanstalk论坛上发布了一个问题,询问如何在6月8日/ 8月15日运行"来自容器上的Docker主机的命令 ".你可以在那里关注对话,但它们很有用.
仅供参考......这里的上下文是AWS Elastic Beanstalk。我正在尝试在 64 位 Amazon Linux 2015.03 v1.4.3(客户 AMI ID 为)上安装音频波形程序ami-6b50291c。运行这个...
$ sudo yum install git cmake libmad-devel libsndfile-devel gd-devel boost-devel
Run Code Online (Sandbox Code Playgroud)
... 成功安装除libmad-develand之外的所有软件包libsndfile-devel。以下是相关输出...
Failed to set locale, defaulting to C
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/2015.03 | 2.1 kB 00:00
amzn-updates/2015.03 | 2.3 kB 00:00
Package git-2.1.0-1.38.amzn1.x86_64 already installed and latest version
Package cmake-2.8.12-2.20.amzn1.x86_64 already installed and latest version
No package libmad-devel available.
No package libsndfile-devel available.
Package gd-devel-2.0.35-11.10.amzn1.x86_64 …Run Code Online (Sandbox Code Playgroud) 我一直在尝试将我的Rails应用程序停靠在Elastic Beanstalk上.有很多例子,但大多数都不适合我的具体用例.那是:
.dockerignore文件.关于如何部署的过程不是问题,而是适用于具有上述特定标准的Amazon Elastic Beanstalk的Docker配置.
什么是正确的配置来运行?
何时弹性豆茎部署应用程序时,是有可能禁用由乘客的Phusion(独立)中所示的错误页?特别是在生产中.这个页面包含一个堆栈跟踪以及暴露的环境变量......在我看来这很危险.
快速重现此方法会引入语法错误(这不是唯一的方法).
我可以在这里看到(链接)它是可能的......只是不确定你如何在EB上做同样的事情.为了避免将来出现断链,我将在这里引用对话......一个人问:
我似乎记得在某个地方阅读,可以禁用乘客启动错误页面,显示你是否遗漏了宝石等.如果我没记错,我认为Phusion人员说生产环境中的默认行为是禁止此错误页面显示堆栈跟踪等.有没有办法使用当前版本的Passenger禁用此错误页面?
哪个Phusion家伙回复...
现在您只需编辑lib/phusion_passenger/templates中的模板即可.所有错误也会记录到Web服务器日志文件中.
虽然响应是一个积极的迹象,但它并没有真正解决我的问题...这是如何在EB上做的,我们都(几乎)知道EB比典型的自我管理服务器更紧凑.
我无法在Elastic Beanstalk上运行delayed_jobs.我正在使用运行Ruby 2.1(Passenger Standalone)容器的64位Amazon Linux 2014.03 v1.0.0.
这是我的配置脚本(delayed_job.config)......
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_restart_delayed_job.sh":
mode: "000755"
owner: root
group: root
encoding: plain
content: |
#!/usr/bin/env bash
. /opt/elasticbeanstalk/support/envvars
cd $EB_CONFIG_APP_CURRENT
su -c "RAILS_ENV=production bin/delayed_job --pid-dir=$EB_CONFIG_APP_SUPPORT/pids restart" $EB_CONFIG_APP_USER
Run Code Online (Sandbox Code Playgroud)
该99_restart_delayed_job.sh脚本存在并运行...但后来我偶然发现了这个错误.
2014-10-02 15:28:32,332 [INFO] (17387 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Script succeeded.
2014-10-02 15:28:32,402 [INFO] (17448 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Executing directory: /opt/elasticbeanstalk/hooks/appdeploy/post/
2014-10-02 15:28:32,402 [INFO] (17448 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Executing script: /opt/elasticbeanstalk/hooks/appdeploy/post/99_restart_delayed_job.sh
/usr/share/ruby/vendor_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such …Run Code Online (Sandbox Code Playgroud) deployment ruby-on-rails amazon-web-services delayed-job amazon-elastic-beanstalk