安装挂钩后代码部署中的错误?
bug in codedeploy afterinstall hook?
我们为 symfony3 应用程序设置了自动缩放。我们正在使用 aws codedeploy 部署到自动缩放实例。
我的appspec.yml文件
version: 0.0
os: linux
files:
- source: /
destination: /usr/share/nginx/<some_dir>
hooks:
AfterInstall:
- location: post_deploy.sh
timeout: 180
runas: ubuntu
post_deploy.sh
#!/bin/bash
doc_root=/usr/share/nginx/<some_dir>
current_dir=$PWD
cd $doc_root
sudo -E composer install --no-interaction --no-dev --optimize-autoloader
cd $current_dir
并且还为 parameters.yml 文件导出了环境变量
当我们部署revision时,codedeploy部署成功。但是当我通过浏览器访问我的应用程序时,nginx 错误日志显示:
PHP Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException' with message 'You have requested a non-existent parameter "database.host". Did you mean one of these: "database_host", "database_port"?
奇怪的是,当我 运行 post_deploy.sh 通过登录到我的服务器手动编写脚本时,它执行得很好并且之后没有错误。
不知道怎么处理。
尝试将 database.host 更改为 database_host。消息中指出的内容。
尽管有 -E
选项,codedeploy 不会保留环境变量。
所以我在命令本身中传递了 env var,就像这样
sudo SYMFONY_ENV=$SYMFONY_ENV SYMFONY__DATABASE__NAME=$SYMFONY__DATABASE__NAME SYMFONY__DATABASE__USER=$SYMFONY__DATABASE__USER SYMFONY__DATABASE__HOST=$SYMFONY__DATABASE__HOST SYMFONY__DATABASE__PORT=$SYMFONY__DATABASE__PORT SYMFONY__DATABASE__PASSWORD=$SYMFONY__DATABASE__PASSWORD COMPOSER_HOME=$COMPOSER_HOME composer install --no-interaction --no-dev --optimize-autoloader
对我有用。
我们为 symfony3 应用程序设置了自动缩放。我们正在使用 aws codedeploy 部署到自动缩放实例。
我的appspec.yml文件
version: 0.0
os: linux
files:
- source: /
destination: /usr/share/nginx/<some_dir>
hooks:
AfterInstall:
- location: post_deploy.sh
timeout: 180
runas: ubuntu
post_deploy.sh
#!/bin/bash
doc_root=/usr/share/nginx/<some_dir>
current_dir=$PWD
cd $doc_root
sudo -E composer install --no-interaction --no-dev --optimize-autoloader
cd $current_dir
并且还为 parameters.yml 文件导出了环境变量
当我们部署revision时,codedeploy部署成功。但是当我通过浏览器访问我的应用程序时,nginx 错误日志显示:
PHP Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException' with message 'You have requested a non-existent parameter "database.host". Did you mean one of these: "database_host", "database_port"?
奇怪的是,当我 运行 post_deploy.sh 通过登录到我的服务器手动编写脚本时,它执行得很好并且之后没有错误。 不知道怎么处理。
尝试将 database.host 更改为 database_host。消息中指出的内容。
尽管有 -E
选项,codedeploy 不会保留环境变量。
所以我在命令本身中传递了 env var,就像这样
sudo SYMFONY_ENV=$SYMFONY_ENV SYMFONY__DATABASE__NAME=$SYMFONY__DATABASE__NAME SYMFONY__DATABASE__USER=$SYMFONY__DATABASE__USER SYMFONY__DATABASE__HOST=$SYMFONY__DATABASE__HOST SYMFONY__DATABASE__PORT=$SYMFONY__DATABASE__PORT SYMFONY__DATABASE__PASSWORD=$SYMFONY__DATABASE__PASSWORD COMPOSER_HOME=$COMPOSER_HOME composer install --no-interaction --no-dev --optimize-autoloader
对我有用。