- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试将我的应用程序(nodeJS + MongoDB)的第二个版本推送到我的 OpenShift 帐户中。它第一次工作,但现在失败并出现此错误:
Erics-MacBook-Air:rippleRating ericg$ git push openShift master
Counting objects: 129, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (129/129), done.
Writing objects: 100% (129/129), 28.09 KiB | 0 bytes/s, done.
Total 129 (delta 94), reused 0 (delta 0)
remote: Stopping NodeJS cartridge
remote: Mon Apr 13 2015 07:53:08 GMT-0400 (EDT): Stopping application 'ripplerating' ...
remote: Mon Apr 13 2015 07:53:09 GMT-0400 (EDT): Stopped Node application 'ripplerating'
remote: Stopping MongoDB cartridge
remote: No such file or directory - /var/lib/openshift/xxxxxxxxxxxxxxxxf8000090/app-deployments/2015-04-13_07-53-10.382/metadata.json
To ssh://xxxxxxxxxxxxxxxxf8000090@ripplerating-<domain>.rhcloud.com/~/git/ripplerating.git/
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://xxxxxxxxxxxxxxxxf8000090@ripplerating-<domain>.rhcloud.com/~/git/ripplerating.git/'
如果我 rhc ssh
到我的应用程序,我看不到目录 2015-04-13_07-53-19.382
,我只有 app- files
、current
和 by-id
(app-files
有 metadata.json
)。
顺便说一句,添加一些我不想放入 git 存储库但可由 nodeJS 应用程序使用的文件 (secret.json
) 的最佳位置是什么?
谢谢!
最佳答案
我最近自己遇到了这个问题,想分享一下我是如何找到解决方案的。
首先,我的/app-deployments 目录包含以下内容:
by-id current redis-cli
使用 ls -l
显示 current
实际上是指向当前运行构建的软链接(soft link)。
current -> 2015-07-10_22-45-22.964
但是,使用命令 file current
还显示:
current: broken symbolic link to `2015-07-12_22-45-22.964'
这看起来很奇怪,但这与/app-deployments 目录中没有以最新构建的时间戳 (2015-07-10_22-45-22.964) 命名的文件夹这一事实是一致的。我删除了 current
并尝试推送。然而,与 OP 相同的结果,缺少内部包含 metadata.json 的新构建的文件夹或目录。
在 by-id
和 redis-cli
中查找后,我发现 redis-cli
包含它自己的 metadata.json 文件其中有很多空值('git_sha1' 和 'id' 都是空值)。我使用 git_sha1
字段来匹配我之前和新的提交,但没有任何改变。另一个文件夹 by-id
也有一个指向 redis-cli
文件夹的软链接(soft link)。
此时我已经备份了我想要的所有内容,我试图通过删除其中的所有内容并推送来强制刷新到/app-deployments 目录的默认值。令人惊讶的是,它奏效了!现在我的/app-deployments 目录如下所示:
2015-07-10_22-45-22.964 by-id current
这是我通常希望在那里看到的内容。希望这会对某人有所帮助!
作为旁注,我后来决定启用 openshift 对多个回滚版本的支持,which you can read about here .它允许您指定要保留多少回滚,这在其他类似情况下可能非常有值(value)。
关于json - 推送到 openShift git 时找不到 metadata.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29605267/
我是一名优秀的程序员,十分优秀!