我当前的 Rails 应用程序分为 2 个文件夹。
/base
/app
使用我的 gemfile 中的以下行将 base 引用到应用程序中
gem 'base', path: "../base"
我正在尝试将此存储库 git 部署到 dokku - 但是这失败了,我假设这是由于 dokku 无法确定正确的 buildpack,因为它仅在根目录中查找以确定应用程序类型等。
来自 dokku 跟踪的片段:
remote: + DOCKER_ARGS+=
remote: ++ docker run -d -v /home/dokku/sws/cache:/cache -e CACHE_PATH=/cache dokku/sws /build/builder
remote: + id=2439409a62c2da4c32086149ad404dd4c6ec974e83aa7fe0d8e06d092396b69f
remote: + docker attach 2439409a62c2da4c32086149ad404dd4c6ec974e83aa7fe0d8e06d092396b69f
-----> Unable to select a buildpack
remote: + exit_code=1
remote: + set -e
我尝试使用 Deploy a subdirectory to Heroku 上提到的 config.ru在 Heroku 上处理相同问题时 - 但这似乎不起作用。
有什么想法吗?
最佳答案
我在 Node.js 应用程序中遇到了类似的问题,其中我有一个包含多个文件夹的存储库,并且只有一个包含 Dokku 应用程序。我想出了以下不雅解以bash脚本的形式:
#!/bin/bash
git init
git add . --all
git commit -m "dokku deploy"
git remote add dokku [dokkuserver]
git push dokku master
rm -rf .git
我只是从我的应用程序的文件夹中运行这个脚本。它创建一个临时 git 存储库,将其推送到 Dokku,然后删除本地存储库。我说这是不雅的解决方案的原因是我知道这可以通过顶级文件夹中的一些 Git 子树魔法来实现(我的同事前段时间这样做了),但我没有时间弄清楚。一些拥有更多 Git fu 的人可能会对此有所帮助。
关于ruby-on-rails - dokku - 从子文件夹运行 Rails 4 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656781/