【发布时间】:2014-02-27 01:26:44
【问题描述】:
我正在尝试在 php 5.5 容器中的弹性 beantalk 上启动应用程序。有 3 个环境 dev、staging 和 production。从命令行设置环境变量时,您无法区分环境,因此我使用 aws support 建议的解决方法,即在部署时运行 shell 脚本来设置变量,具体取决于另一个变量的存在我可以根据环境而有所不同
.当我部署我的应用程序时,.ebextensions/ 中有一个配置文件,就像这样
container_commands:
command01:
command: "./.ebextensions/setEnvVars.sh"
shell 脚本也在 .ebextensions 中,看起来像这样
#!/bin/bash
case "$PARAM1" in
"development")
echo -e "SetEnv APP_ENV development\n
SetEnv DB_HOST *******\n
SetEnv DB_NAME *******\n
SetEnv DB_USERNAME *******\n
SetEnv DB_PASSWORD *******\n" > .htaccess
;;
"production")
echo -e "SetEnv APP_ENV production\n
SetEnv DB_HOST *******\n
SetEnv DB_NAME *******\n
SetEnv DB_USERNAME *******\n
SetEnv DB_PASSWORD *******\n" > .htaccess
;;
"staging")
echo -e "SetEnv APP_ENV staging\n
SetEnv DB_HOST *******\n
SetEnv DB_NAME *******\n
SetEnv DB_USERNAME *******\n
SetEnv DB_PASSWORD *******\n" > .htaccess
;;
esac
if [ -f .htaccess ]; then
chmod 644 .htaccess
fi
当应用部署时出现此错误
[Instance: i-400fc60f Module: AWSEBAutoScalingGroup ConfigSet: null] Command failed on instance. Return code: 1 Output: Error occurred during build: Command command01 failed .
这就是我认为来自日志的相关 ecert
2014-02-03 12:54:25,531 [INFO] (1923 MainThread) [command.py-130] [root command execute] Command returned: (code: 1, stdout: Error occurred during build: Command command01 failed
, stderr: None)
2014-02-03 12:54:25,533 [DEBUG] (1923 MainThread) [commandWrapper.py-60] [root commandWrapper main] Command result: {'status': 'FAILURE', 'results': [{'status': 'FAILURE', 'config_sets': ['Infra-WriteRuntimeConfig', 'Infra-WriteApplication1', 'Infra-WriteApplication2', 'Infra-EmbeddedPreBuild', 'Hook-PreAppDeploy', 'Infra-EmbeddedPostBuild', 'Hook-EnactAppDeploy', 'Hook-PostAppDeploy'], 'returncode': 1, 'events': [], 'msg': 'Error occurred during build: Command command01 failed\n'}], 'api_version': '1.0'}
我对弹性豆茎或外壳没有任何经验,因此很容易出现语法错误,但老实说我不知道要查看
【问题讨论】:
标签: php shell amazon-web-services amazon-elastic-beanstalk