Php OpenShift操作挂钩部署问题
我有一个symfony 2项目,我正试图在OpenShift online上启动。我根据需要创建了这个目录,并在本地运行symfony,效果非常好 但是,当我部署到OpenShift应用程序时,部署和部署后操作挂钩不会运行。我甚至没有在git push上看到文档中提到的输出 我还应该注意,我可以使用ssh连接到应用程序中,并创建一个test.sh,它将运行完全相同的代码并按预期工作 任何帮助都将不胜感激,我已经向支持人员提交了多张票,但运气不佳 以下是指向目录结构屏幕截图的链接: 下面是我的post_部署挂钩:Php OpenShift操作挂钩部署问题,php,git,bash,symfony,openshift,Php,Git,Bash,Symfony,Openshift,我有一个symfony 2项目,我正试图在OpenShift online上启动。我根据需要创建了这个目录,并在本地运行symfony,效果非常好 但是,当我部署到OpenShift应用程序时,部署和部署后操作挂钩不会运行。我甚至没有在git push上看到文档中提到的输出 我还应该注意,我可以使用ssh连接到应用程序中,并创建一个test.sh,它将运行完全相同的代码并按预期工作 任何帮助都将不胜感激,我已经向支持人员提交了多张票,但运气不佳 以下是指向目录结构屏幕截图的链接: 下面是我的p
#!/bin/bash
# This deploy hook gets executed after dependencies are resolved and the
# build hook has been run but before the application has been started back
# up again. This script gets executed directly, so it could be python, php,
# ruby, etc.
# set the location for composer home to the data dir
export COMPOSER_HOME="$OPENSHIFT_DATA_DIR/.composer"
# check if composer exists in data dir
if [ ! -f "$OPENSHIFT_DATA_DIR/composer.phar" ]; then
curl -s https://getcomposer.org/installer | /opt/rh/php54/root/usr/bin/php -- --install-dir=$OPENSHIFT_DATA_DIR
else
/opt/rh/php54/root/usr/bin/php $OPENSHIFT_DATA_DIR/composer.phar self-update
fi
# check and set the symlink for vendor dir
if [ ! -d "$OPENSHIFT_DATA_DIR/vendor" ]; then
echo !!! vendor directory does NOT exist - creating symlink...
mkdir $OPENSHIFT_DATA_DIR/vendor
echo !!! created vendor directory - creating symlink...
ln -s $OPENSHIFT_DATA_DIR/vendor $OPENSHIFT_REPO_DIR/vendor
echo !!! created symlink - setting permissions on directory...
chmod -R 0777 $OPENSHIFT_DATA_DIR/vendor
echo !!! permissions have been set on vendor directory!
else
echo !!! vendor directory already exists - skipping symlink...
fi
// shortened for brevity, but the rest is the same.
# use composer install
( unset GIT_DIR ; cd $OPENSHIFT_REPO_DIR ; /opt/rh/php54/root/usr/bin/php $OPENSHIFT_DATA_DIR/composer.phar install )
确保您正在使action_hooks可执行(chmod+x),然后将该信息添加到git,并执行git推送。在Windows上,您需要运行:
git update-index --chmod=+x .openshift/action_hooks/*
(这不是答案,但我没有足够的声誉对你的帖子发表评论)为了改进钩子,您应该检查
$OPENSHIFT\u REPO\u DIR/供应商是否存在。如果$OPENSHIFT\u DATA\u DIR/vendor
DIR已经存在,则不会创建符号链接
#检查供应商目录
如果[!-d“$OPENSHIFT_DATA_DIR/vendor”];然后
mkdir$OPENSHIFT\u DATA\u DIR/供应商
chmod-R 0777$OPENSHIFT\u数据\u目录/供应商
fi
#检查符号链接
如果[!-d“$OPENSHIFT\u REPO\u DIR/供应商”];然后
ln-s$OPENSHIFT\数据\目录/供应商$OPENSHIFT\回购\目录/供应商
fi