【问题标题】:cap production deploy fail with bundle上限生产部署失败并带有捆绑包
【发布时间】:2023-03-06 00:18:01
【问题描述】:
sudo cap production deploy

(回溯仅限于导入的任务) 帽子流产了! SSHKit::Runner::ExecuteError:以 deploy@139.59.225.216 执行时出现异常:捆绑退出状态:127 捆绑标准输出:没有写 bundle stderr: /usr/bin/env: 'bundle': 没有这样的文件或目录

SSHKit::Command::Failed:捆绑退出状态:127 捆绑标准输出:没有写 bundle stderr: /usr/bin/env: 'bundle': 没有这样的文件或目录

任务:顶部 => 部署:更新 => 捆绑器:安装 (通过使用 --trace 运行任务查看完整跟踪) 部署失败并出现错误:以 deploy@139.59.225.216 执行时出现异常:捆绑退出状态:127 捆绑标准输出:没有写 bundle stderr: /usr/bin/env: 'bundle': 没有这样的文件或目录

** 部署失败 ** 有关详细信息,请参阅 log/capistrano.log。以下是最后 20 行:

DEBUG [fee00417] 在 0.208 秒内完成,退出状态为 1(失败)。

INFO [833f8be9] 运行 /usr/bin/env ln -s /home/deploy/qastflood/shared/public/assets /home/deploy/qastflood/releases/20170504134248/public/assets 作为 deploy@139.59.225.216

调试 [833f8be9] 命令:/usr/bin/env ln -s /home/deploy/qastflood/shared/public/assets /home/deploy/qastflood/releases/20170504134248/public/assets

INFO [833f8be9] 在 0.122 秒内完成,退出状态为 0(成功)。

调试 [a48a6eba] 如果测试运行! -d /home/deploy/qastflood/releases/20170504134248;然后 echo "目录不存在 '/home/deploy/qastflood/releases/20170504134248'" 1>&2;错误的; fi 为 deploy@139.59.225.216

DEBUG [a48a6eba] 命令:if test ! -d /home/deploy/qastflood/releases/20170504134248;然后 echo "目录不存在 '/home/deploy/qastflood/releases/20170504134248'" 1>&2;错误的;菲

DEBUG [a48a6eba] 在 0.194 秒内完成,退出状态为 0(成功)。

调试 [83174667] 运行 /usr/bin/env bundle check --path /home/deploy/qastflood/shared/bundle 作为 deploy@139.59.225.216

DEBUG [83174667] 命令:cd /home/deploy/qastflood/releases/20170504134248 && /usr/bin/env bundle check --path /home/deploy/qastflood/shared/bundle

调试 [83174667] /usr/bin/env:

调试 [83174667] '捆绑'

DEBUG [83174667]:没有这样的文件或目录

调试 [83174667]

调试 [83174667] 在 0.119 秒内完成,退出状态为 127(失败)。

INFO [c0e5b256] 运行 /usr/bin/env bundle install --path /home/deploy/qastflood/shared/bundle --without development test --deployment --quiet as deploy@139.59.225.216

DEBUG [c0e5b256] 命令:cd /home/deploy/qastflood/releases/20170504134248 && /usr/bin/env bundle install --path /home/deploy/qastflood/shared/bundle --without development test --deployment --安静

调试 [c0e5b256] /usr/bin/env:

调试 [c0e5b256] '捆绑'

DEBUG [c0e5b256] : 没有这样的文件或目录

调试 [c0e5b256]

我无法在 Digitalocean 中部署 Ruby on Rails

我尝试使用https://gorails.com/deploy/ubuntu/16.04

在最后一步>>cap production deploy 我有你在顶部看到的错误

【问题讨论】:

    标签: capistrano digital-ocean


    【解决方案1】:

    这是 Capsitrano 默认使用非交互式、非登录 shell 的问题。换句话说,bundle 不在 $PATH 中,因为 Capistrano 的登录方式。

    在线 Capistrano 文档中对此主题进行了很长时间的讨论:https://capistranorb.com/documentation/faq/why-does-something-work-in-my-ssh-session-but-not-in-capistrano/

    解决方法是找出 bundle 的安装位置,然后将其添加到 ~/.bashrc 中的路径(对于非登录、非交互式 shell,应该加载)。

    为避免添加两次,您可以仔细重新配置 bash 配置文件的所有疯狂分层,使其正常工作,或者您可以做一些 $PATH 嗅探并有条件地添加路径,如下所示:

    path_to_bundle="/some/path"
    if [ -n "${PATH##*${path_to_bundle}}" -a -n "${PATH##*${path_to_bundle}:*}" ]; then
        export PATH=$PATH:${path_to_bundle}
    fi
    

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2016-10-09
      • 1970-01-01
      • 2016-02-07
      • 2013-01-10
      • 2014-03-04
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      相关资源
      最近更新 更多