projectkudu / KuduSync

A file copying tool with semantic appropriate for deploying web site files
Apache License 2.0
57 stars 15 forks source link

Support deferred symlinks by turning off Kudu comparison between ready-to-deploy files and files already in the webapp #43

Open antoine-coulon opened 1 year ago

antoine-coulon commented 1 year ago

Related to https://github.com/projectkudu/kudu/issues/3420

Hello,

I'm currently struggling using the zipDeploy deployment method using the AzureWebApp@1 task which appears to not support symlinks (related https://github.com/Azure/webapps-deploy/issues/54, https://github.com/projectkudu/kudu/issues/3295, https://github.com/projectkudu/kudu/issues/3229).

A workaround we found for that we removed all the symlinks from the artifact we try to "zipDeploy". It works well, as the webappLinux can handle correctly symlinks (created after the deployment). However when doing other deployments afterwards, kudusync does heavy comparisons about files that should be added/removed between the artifact we're trying to deploy and the one that was already shipped in the webapp. This has for consequence of triggering errors during the deploy phase such as Error: ENOENT: no such file or directory, stat '/home/site/wwwroot/common/temp/node_modules/.pnpm/@fastify+static@6.5.1/node_modules because Kudu can't handle symlinks correctly.

Is there any way of disabling that comparison and just remove everything from the destination folder and re-deploy everything with no comparison process trying to resolve symlinks? Currently it prevents us from deploying correctly our monorepos and prevent us from benefiting of the latest features available in the Node.js ecosystem.

kfiroo commented 9 months ago

Any progress on this issue? I'm also experiencing this issues with Kudu and pnpm symlinks 🙏🏼

antoine-coulon commented 9 months ago

@kfiroo I would advise you to switch to Docker deployments, this issue will never be fixed.

kfiroo commented 9 months ago

😢 Thanks @antoine-coulon 🙏🏼

jdkemme commented 8 months ago

Ran into this as well with php artisan storage:link. Tis a sad day.

Error: ENOENT: no such file or directory, stat '/home/site/wwwroot/public/storage',,0

kfiroo commented 8 months ago

@jdkemme I ended up zipping my node_modules folder before running the deploy script (which my entire app folder) and after deployment i unzip it myself, this got me over the annoying deployment failed issue until I find the time to migrate to a proper Docker deployment