【问题标题】:Capistrano's /current folder always points to the same (non-existent) releaseCapistrano 的 /current 文件夹总是指向同一个(不存在的)版本
【发布时间】:2018-08-13 17:03:01
【问题描述】:

我的 capistrano 版本似乎被“糟透了”,因为无论我发送多少 cap production deploys,都会一遍又一遍地生成 /current 文件夹,指向同一个文件夹。

# Trying to open /current with FTP Sync
Command:    CWD /public_html/storekey-demo/releases/20180813141339
Response:   550 /public_html/storekey-demo/releases/20180813141339: No such file or directory
Error:  Failed to retrieve directory listing

即使在删除 /current 文件夹、/releases 文件夹、/repo 文件夹、/temp 文件夹和 revisions.log 文件并再次运行 capistrano 后,仍会创建指向同一文件夹的符号链接。我想我已经尝试了所有我能想到的。

这是我的 deploy.rb 文件

lock "~> 3.11.0"

set :application, "storekey_demo" # don't use "-"
set :repo_url, "git@gitlab.com: xxxxxxxxxxx .git"

set :deploy_to, "/home/u0000000/public_html/storekey-demo"
set :tmp_dir, '/home/u0000000/public_html/tmp'


namespace :deploy do
    desc "Build"
    after :updated, :build do
        on roles(:web) do
            within release_path do
                execute :composer, "install --no-dev --quiet --optimize-autoloader"
            end
        end
    end
end

namespace :deploy do
    desc "Copy Env"
    after :finished, :copy do
        on roles(:all) do
            upload! "production.env", "#{current_path}/.env"
        end
    end
end

这是我的部署日志,你可以看到没有错误

> cap production deploy
00:00 git:wrapper
      01 mkdir -p /home/u000000000/public_html/tmp
    ✔ 01 u000000000@185.201.11.23 7.806s
      Uploading /home/u000000000/public_html/tmp/git-ssh-storekey_demo-production-francisco.sh 100.0%
      02 chmod 700 /home/u000000000/public_html/tmp/git-ssh-storekey_demo-production-francisco.sh
    ✔ 02 u000000000@185.201.11.23 0.445s
00:09 git:check
      01 git ls-remote git@gitlab.com: xxxxxx .git HEAD
      01 75bb7ded165efb968f00d29808b0673d7517aa41       HEAD
    ✔ 01 u000000000@185.201.11.23 1.438s
00:10 deploy:check:directories
      01 mkdir -p /home/u000000000/public_html/storekey-demo/shared /home/u000000000/public_html/storekey-demo/releases
    ✔ 01 u000000000@185.201.11.23 0.399s
00:12 git:clone
      The repository mirror is at /home/u000000000/public_html/storekey-demo/repo
00:12 git:update
      01 git remote set-url origin git@gitlab.com: xxxxxxx .git
    ✔ 01 u000000000@185.201.11.23 0.465s
      02 git remote update --prune
      02 Fetching origin
    ✔ 02 u000000000@185.201.11.23 1.537s
00:15 git:create_release
      01 mkdir -p /home/u000000000/public_html/storekey-demo/releases/20180813165948
    ✔ 01 u000000000@185.201.11.23 0.455s
      02 git archive master | /usr/bin/env tar -x -f - -C /home/u000000000/public_html/storekey-demo/releases/20180813165948
    ✔ 02 u000000000@185.201.11.23 6.387s
00:23 deploy:set_current_revision
      01 echo "75bb7ded165efb968f00d29808b0673d7517aa41" > REVISION
    ✔ 01 u000000000@185.201.11.23 0.443s
00:24 deploy:build
      01 composer install --no-dev --quiet --optimize-autoloader
    ✔ 01 u000000000@185.201.11.23 6.045s
00:30 deploy:symlink:release
      01 ln -s /home/u000000000/public_html/storekey-demo/releases/20180813165948 /home/u000000000/public_html/storekey-demo/releases/current
    ✔ 01 u000000000@185.201.11.23 25.267s
      02 mv /home/u000000000/public_html/storekey-demo/releases/current /home/u000000000/public_html/storekey-demo
    ✔ 02 u000000000@185.201.11.23 0.421s
00:56 deploy:cleanup
      Keeping 5 of 6 deployed releases on 185.201.11.23
      01 rm -rf /home/u000000000/public_html/storekey-demo/releases/20180813164636
    ✔ 01 u000000000@185.201.11.23 0.543s
00:58 deploy:log_revision
      01 echo "Branch master (at 75bb7ded165efb968f00d29808b0673d7517aa41) deployed as release 20180813165948 by francisco" >> /home/u000000000/publ…

    ✔ 01 u000000000@185.201.11.23 0.530s
00:59 deploy:copy
      Uploading production.env 100.0%

【问题讨论】:

  • 我的配置和你一样。你收到这个错误了吗? SSHKit::Runner::ExecuteError: 执行时出现异常:scp: /public_html/app/current/20181122233252/.env: 没有这样的文件或目录

标签: capistrano capistrano3


【解决方案1】:

似乎问题出在 FileZilla 本身,而不是 capistrano。

我通过服务器中的 SSH 控制台进入并删除了 /current 符号链接,然后再次创建它指向最后一个构建,然后运行 ​​capistrano production deploy。问题已解决,更改正在正确部署,但 FireZilla 仍然无法正确识别符号链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    • 2011-03-09
    • 2019-10-09
    • 2011-12-22
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多