How to keep file sync'd in OpenShift?

后端 未结 3 460
面向向阳花
面向向阳花 2021-02-10 19:43

For OpenShift:

I created a test directory in ~ app-root/repo/data. I also have locally \'myapp\'/data directory. I can push up to OpenShift wi

相关标签:
3条回答
  • 2021-02-10 19:47

    If you can ssh into the machine, you should be able to read or write files using scp.

    Simply placing new files within your Openshift gear's ~/app-root/repo/ folder will not cause the files to be included (checked in to) your revision control system. Normally, you should be using git commit and git push to make the majority of the changes to your app locally, then follow up by pushing those changes to your OpenShift gear.

    If your app needs on-disk storage, or access to additional content such as secret tokens and keys that you would prefer to keep out of your source code - you can place this content in your ~/app-root/data folder. This directory is not effected by deployments, and has been set aside for your app's local disk storage needs.

    0 讨论(0)
  • 2021-02-10 20:06

    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.

    0 讨论(0)
  • 2021-02-10 20:10

    Check this blog: https://community.jboss.org/people/ozizka/blog/2013/01/06/openshift--how-to-make-uploaded-files-public

    OpenShift applications code is uploaded using Git. Any changes in the repository directory is recreated after push. Therefore, storing uploaded files in there won't work.

    The only persistent directory you can use is ../data. It's full path is stored in environment variable $OPENSHIFT_DATA_DIR. However, this dir is not public - so no URL leads there.

    The solution is quite easy - just create a symlink. Here's an example for PHP. Login to your machine via SSH, and run:

    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
    

    This makes the content in ../data/photos publicly accessible at http://myapp-myaccount.rhcloud.com/photos/ . The directory to manage the files in can be referred to using $_ENV['OPENSHIFT_DATA_DIR'].

    0 讨论(0)
提交回复
热议问题