在 Capistrano 3 中创建 linked_dirs 失败
Creating linked_dirs in Capistrano 3 fails
我正在尝试使用 SilverStripe 构建设置 Capistrano,但 运行 在设置共享目录时遇到了一些麻烦。
我在 deploy.rb 中设置 linked_dirs 如下:
set :linked_dirs, %w{assets vendor}
添加此行后出现以下错误:
[617afa7f] Command: /usr/bin/env mkdir -p /var/www/website/releases/20160215083713 /var/www/website/releases/20160215083713
INFO [617afa7f] Finished in 0.250 seconds with exit status 0 (successful).
DEBUG [88c3de20] Running /usr/bin/env [ -L /var/www/website/releases/20160215083713/assets ] as capistrano@128.199.231.152
DEBUG [88c3de20] Command: [ -L /var/www/website/releases/20160215083713/assets ]
DEBUG [88c3de20] Finished in 0.258 seconds with exit status 1 (failed).
DEBUG [3d61c1c4] Running /usr/bin/env [ -d /var/www/website/releases/20160215083713/assets ] as capistrano@128.199.231.152
DEBUG [3d61c1c4] Command: [ -d /var/www/website/releases/20160215083713/assets ]
DEBUG [3d61c1c4] Finished in 0.254 seconds with exit status 1 (failed).
INFO [3016a8cd] Running /usr/bin/env ln -s /var/www/website/shared/assets /var/www/website/releases/20160215083713/assets as capistrano@128.199.231.152
在 Capistrano 方面我是一个超级菜鸟,在服务器配置和权限方面我是一个半菜鸟,所以任何指点都将不胜感激。
它可能实际上并没有失败。关于 Capistrano 需要了解的一件事是 (success)
和 (failed)
实际上是 returning exit status 的结果,(success)
if 0 和 (failed)
如果非 0.
如果我们查看有问题的命令,它会显示 /usr/bin/env [ -L /var/www/website/releases/20160215083713/assets ]
失败。这个命令说“return 0 如果 /var/www/website/releases/20160215083713/assets
存在并且是一个 link (-L
)。这失败了,但这只是意味着它 return 是非0,因此需要创建 link。请注意,下一个命令也失败了 (-d
),断言路径是一个目录。输出中的最后一行实际上是在创建 link 有问题。
您可以在此处查看 Capistrano 代码库中的测试:https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/deploy.rake#L128
您可以使用 https://github.com/mattbrictson/airbrussh 清理和简化输出。这是由一位主要的 Capistrano 开发人员开发的。
作为旁注,类似地,您终端中的所有绿色文本都是 stdout
,红色文本是 stderr
。这也可能令人困惑。
我正在尝试使用 SilverStripe 构建设置 Capistrano,但 运行 在设置共享目录时遇到了一些麻烦。
我在 deploy.rb 中设置 linked_dirs 如下:
set :linked_dirs, %w{assets vendor}
添加此行后出现以下错误:
[617afa7f] Command: /usr/bin/env mkdir -p /var/www/website/releases/20160215083713 /var/www/website/releases/20160215083713
INFO [617afa7f] Finished in 0.250 seconds with exit status 0 (successful).
DEBUG [88c3de20] Running /usr/bin/env [ -L /var/www/website/releases/20160215083713/assets ] as capistrano@128.199.231.152
DEBUG [88c3de20] Command: [ -L /var/www/website/releases/20160215083713/assets ]
DEBUG [88c3de20] Finished in 0.258 seconds with exit status 1 (failed).
DEBUG [3d61c1c4] Running /usr/bin/env [ -d /var/www/website/releases/20160215083713/assets ] as capistrano@128.199.231.152
DEBUG [3d61c1c4] Command: [ -d /var/www/website/releases/20160215083713/assets ]
DEBUG [3d61c1c4] Finished in 0.254 seconds with exit status 1 (failed).
INFO [3016a8cd] Running /usr/bin/env ln -s /var/www/website/shared/assets /var/www/website/releases/20160215083713/assets as capistrano@128.199.231.152
在 Capistrano 方面我是一个超级菜鸟,在服务器配置和权限方面我是一个半菜鸟,所以任何指点都将不胜感激。
它可能实际上并没有失败。关于 Capistrano 需要了解的一件事是 (success)
和 (failed)
实际上是 returning exit status 的结果,(success)
if 0 和 (failed)
如果非 0.
如果我们查看有问题的命令,它会显示 /usr/bin/env [ -L /var/www/website/releases/20160215083713/assets ]
失败。这个命令说“return 0 如果 /var/www/website/releases/20160215083713/assets
存在并且是一个 link (-L
)。这失败了,但这只是意味着它 return 是非0,因此需要创建 link。请注意,下一个命令也失败了 (-d
),断言路径是一个目录。输出中的最后一行实际上是在创建 link 有问题。
您可以在此处查看 Capistrano 代码库中的测试:https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/deploy.rake#L128
您可以使用 https://github.com/mattbrictson/airbrussh 清理和简化输出。这是由一位主要的 Capistrano 开发人员开发的。
作为旁注,类似地,您终端中的所有绿色文本都是 stdout
,红色文本是 stderr
。这也可能令人困惑。