【问题标题】:Uploaded files getting deleted while redeploying in Openshift server在 Openshift 服务器中重新部署时上传的文件被删除
【发布时间】:2015-02-08 23:51:31
【问题描述】:

推送整个应用程序后,整个应用程序运行正常。然后我通过我的网络界面将一些文件上传到我的上传文件夹。

如果我通过 git 推送代码,uploads 文件夹中的所有文件都会自动删除。有没有办法在我的 openshift 服务器中阻止这种情况?

【问题讨论】:

    标签: ubuntu openshift openshift-enterprise


    【解决方案1】:

    您的应用程序应该将所有持久性文件存储在$OPENSHIFT_DATA_DIR,通常是~/app-root/data。您的应用程序可能会将这些“上传”存储到您的代码所在的$OPENSHIFT_REPO_DIR。每次您git push 时,此目录都会被您的新代码覆盖。

    您需要配置您的应用程序以将上传的内容存储在 $OPENSHIFT_DATA_DIR 中以持久存储它们。

    【讨论】:

    • 如何将我的上传文件夹移动到 $OPENSHIFT_DATA_DIR ?
    • 这取决于您的应用程序代码。您将需要修改 uploads 的存储位置,以便将上传文件放置在数据目录中。或者,您可以在构建操作挂钩中设置指向数据目录的符号链接。请参阅此论坛帖子(假设您使用的是 wordpress):forums.openshift.com/how-to-find-wordpress-uploads-folder
    • 我同意@Timbabwe,符号链接是必经之路,您可以查看 WordPress 快速入门,了解符号链接的工作原理以及在何处创建符号链接:github.com/openshift/wordpress-example/blob/master/.openshift/…
    【解决方案2】:

    在您的根 wordpress 本地创建一个用于操作挂钩的目录

    mkdir -p .openshift/action_hooks
    

    然后创建部署钩子

    vim .openshift/action_hooks/deploy
    

    粘贴这个

    #!/bin/bas
    echo "Creating symlink folder of uploads" 
    if [ ! -d ${OPENSHIFT_DATA_DIR}uploads ]; then
        mkdir ${OPENSHIFT_DATA_DIR}uploads
    fi
    ln -svf ${OPENSHIFT_DATA_DIR}uploads ${OPENSHIFT_REPO_DIR}wp-content/uploads
    

    注意:.openshift/action_hooks/deploy 钩子不可执行,以使其可执行:

    在 Windows 上:git update-index --chmod=+x .openshift/action_hooks/deploy

    在 Linux/OSX 上:chmod +x .openshift/action_hooks/deploy

    添加更改、提交和推送。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      相关资源
      最近更新 更多