[英]Rails deployment with Capistrano failing
對於RoR來說,我還很陌生,並將此類應用程序部署到生產環境中,所以我已經做了很多閱讀工作。
但是,有一個我似乎無法克服的問題。 在調查期間,我遇到了關於SO的線程,該線程指示Capistrano v3.x的行為已更改,這使一些人感到困惑。
詳細介紹的線程要做的一件事是實現遠程文件檢查,如果部署期間不存在該文件,則聲明要上傳的本地文件(這是我的解釋)。
以下內容已添加到我的config / deploy.rb中:
namespace :deploy do
namespace :check do
task :linked_files => 'config/database.yml'
end
remote_file 'config/database.yml' => '/home/ubuntu/workspace/config/database.yml'
...
end
我正在Cloud9 IDE中工作。 當我運行cap production deploy
命令時,返回以下來自部署日志的摘錄:
INFO [5cccd59b] Running /usr/bin/env mkdir -pv /home/deploy/--------/shared/config as deploy@---------------.com
DEBUG [5cccd59b] Command: /usr/bin/env mkdir -pv /home/deploy/--------/shared/config
INFO [5cccd59b] Finished in 0.068 seconds with exit status 0 (successful).
DEBUG [bd9797ee] Running /usr/bin/env [ -f /home/deploy/--------/shared/deploy:config/database.yml ] as deploy@---------------.com
DEBUG [bd9797ee] Command: [ -f /home/deploy/--------/shared/deploy:config/database.yml ]
DEBUG [bd9797ee] Finished in 0.067 seconds with exit status 1 (failed).
INFO Uploading /home/ubuntu/workspace/config/database.yml to /home/deploy/--------/shared/deploy:config/database.yml
DEBUG Uploading /home/deploy/--------/shared/deploy:config/database.yml 0.0%
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@---------------.com: scp: /home/deploy/--------/shared/deploy:config/database.yml: No such file or directory
我不知道100%,但是在我看來,它自動使用:插入的路徑正在拋出腳本。
任何指導表示贊賞!
提前致謝,
Gabrial
您在共享目錄中丟失了database.yml文件。 另外,值得注意的是,如果您一直在開發環境中工作,則還必須配置database.yml文件進行生產。 檢查以確保* yml未在您的.gitignore文件中列出。
這是一個示例生產條目:
production:
adapter: mysql2
database: production_for_my_app
username: root
password: ''
host: localhost
盡管您可能已將一個database.yml文件簽入版本控制,但您需要在應用程序外部的共享目錄中保存一個。
為此,將SSH連接到您的機器中
cd /home/rails/< your app >/shared/config
然后制作database.yml文件
touch database.yml
nano database.yml
然后將您在版本控制中擁有的database.yml副本的內容復制並粘貼到剛創建的database.yml文件中。
保存文件即可開展業務。
您應該在沒有任何名稱空間的情況下調用remote_file
。
namespace :deploy do
namespace :check do
task :linked_files => 'config/database.yml'
end
...
end
remote_file 'config/database.yml' => '/home/ubuntu/workspace/config/database.yml'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.