5

我当前的 Rails 应用程序分为 2 个文件夹。

/base  
/app

在我的 gemfile 中使用以下行将 base 引用到应用程序中

gem 'base', path: "../base"

我正在尝试将此存储库 git 部署到 dokku - 但是这失败了,我假设这是由于 dokku 无法确定正确的构建包,因为它只是在根目录中查找应用程序类型等。

来自 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

在处理 Heroku 上的相同问题时,我尝试使用将子目录部署到 Heroku中提到的 config.ru - 但这似乎不起作用。

有什么想法吗?

4

1 回答 1

3

我在我的 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 的人可能会对此有所帮助。

于 2015-12-22T09:46:06.613 回答