fix: adjust deployer config to prevent symlink loop issue with rsync
This commit is contained in:
+18
@@ -69,6 +69,24 @@ $rsyncOptions = [
|
|||||||
'timeout' => 300,
|
'timeout' => 300,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// The provider's rsync (3.5.0) fails to chdir into a destination whose path traverses
|
||||||
|
// symlinks, which /home/www/p704161 does: `change_dir#1 ... Too many levels of symbolic
|
||||||
|
// links (40)`. Verified: the same directory rsyncs fine when addressed relative to $HOME.
|
||||||
|
// Only contrib/rsync.php hands a path to rsync; every other task goes through the SSH
|
||||||
|
// shell, which resolves the absolute path without trouble, so deploy_path stays absolute.
|
||||||
|
set('remote_home', '/home/www/p704161');
|
||||||
|
|
||||||
|
set('rsync_dest', function () {
|
||||||
|
$releasePath = get('release_path');
|
||||||
|
$home = rtrim(get('remote_home'), '/').'/';
|
||||||
|
|
||||||
|
if (!str_starts_with($releasePath, $home)) {
|
||||||
|
return $releasePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
return substr($releasePath, strlen($home));
|
||||||
|
});
|
||||||
|
|
||||||
host('prod')
|
host('prod')
|
||||||
->setHostname('185.243.135.29')
|
->setHostname('185.243.135.29')
|
||||||
->setRemoteUser('p704161')
|
->setRemoteUser('p704161')
|
||||||
|
|||||||
Reference in New Issue
Block a user