对于OpenShift:
我在〜app-root/repo/data.
中创建了一个测试目录
我也有本地'myapp'/data
目录。我可以用git推送到OpenShift。我的测试文件上传很好,我可以用ssh检查。
现在我用nano或vim远程创建一个文件 - 文件名为remoteFileVim
文件存在于repo/data
目录中。当我在本地进行git pull时,我看不到该文件remoteFileVim
。
我在app-root/data
中创建了第二个名为secondVimFile
的文件,如何将此文件提取到本地计算机。我可以使用git
吗?我在Openshift上加载了python 2.6,cron,mysql,如果有帮助的话。
答案 0 :(得分:4)
如果您可以使用scp
进入机器,则应能够读取或写入文件。
只需将新文件放入Openshift齿轮的~/app-root/repo/
文件夹中,就不会导致文件被包含(签入)到您的版本控制系统中。通常情况下,您应该使用git commit
和git push
在本地对应用进行大部分更改,然后将这些更改推送到您的OpenShift设备进行跟进。
如果您的应用需要磁盘存储,或访问其他内容,例如secret tokens and keys that you would prefer to keep out of your source code,则可以将此内容放在~/app-root/data
文件夹中。此目录不受部署的影响,并且已根据应用程序的本地磁盘存储需求进行了预留。
答案 1 :(得分:3)
使用Git上传OpenShift应用程序代码。 在推送后重新创建存储库目录中的任何更改。 因此,将上传的文件存储在那里不会起作用。
您可以使用的唯一持久目录是../data。它的完整路径存储在环境变量$ OPENSHIFT_DATA_DIR中。 但是,这个目录不公开 - 所以没有URL引导那里。
解决方案非常简单 - 只需创建符号链接即可。这是PHP的一个例子。 通过SSH登录您的计算机,然后运行:
mkdir app-root/data/photos
cd app-root/repo/php # php/ is the only publicly accessible directory (by default, not sure if not changeable in .htaccess).
ln -s ../../data/photos photos
这使得../data/photos中的内容可在http://myapp-myaccount.rhcloud.com/photos/公开访问。
可以使用$_ENV['OPENSHIFT_DATA_DIR']
来引用管理文件的目录。
答案 2 :(得分:0)
你在远程(包括SSH)做的任何事情都发生在app-root中。 GIT使用应用程序部署。 您需要将文件从app-root复制到您的计算机,然后使用GIT推送它们。还有,不是/数据,也不是app-root规模。只有app-deployments> current才会缩放。