4

对于 OpenShift:

我在 ~ 中创建了一个测试目录,app-root/repo/data. 我在本地也有 'myapp'/data目录。我可以用 git 推送到 OpenShift。我的测试文件上传正常,我可以用 ssh 检查。

现在我用 nano 或 vim 远程创建一个文件 --file 名为remoteFileVim文件存在于repo/data目录中。当我在本地执行 git pull 时,我看不到该文件remoteFileVim

app-root/data我在调用中创建了第二个文件secondVimFile,如何将此文件拉到本地机器。我可以使用git吗?如果有帮助,我在 Openshift 上加载了 python 2.6、cron、mysql。

4

3 回答 3

4

如果您可以 ssh 进入机器,您应该可以使用scp.

简单地将新文件放入 Openshift 齿轮的~/app-root/repo/文件夹中不会导致文件被包含(签入)您的修订控制系统。通常,您应该使用git commitgit push在本地对您的应用程序进行大部分更改,然后将这些更改推送到您的 OpenShift 设备。

如果您的应用程序需要磁盘存储,或访问其他内容,例如您希望保留在源代码之外的秘密令牌和密钥- 您可以将此内容放在您的~/app-root/data文件夹中。此目录不受部署影响,已为您的应用程序的本地磁盘存储需求预留。

于 2013-01-05T02:48:45.510 回答
3

查看此博客:https ://community.jboss.org/people/ozizka/blog/2013/01/06/openshift--how-to-make-uploaded-files-public

OpenShift 应用程序代码是使用 Git 上传的。推送后重新创建存储库目录中的任何更改。因此,将上传的文件存储在那里是行不通的。

您可以使用的唯一持久目录是 ../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'].

于 2013-01-07T21:06:55.487 回答
0

anything you do do remotely (including SSH) happen in app-root. GIT uses app-deployments. you need to copy the files from app-root to your computer, then push them with GIT. ALSO, NEITHER /data, nor app-root scale. only app-deployments>current gets scaled.

于 2014-05-26T15:12:06.537 回答