问题描述
我目前正在尝试为我的 Vapor 应用程序创建一个可执行文件,但我无法在我的服务器上运行它。
我的期望是它能够使用我的所有代码和依赖项创建一个应用程序。我目前的参考资料是 .NET 和 Go,您可以在其中从代码创建单个可执行文件并部署这个独立文件 - 这使得部署变得非常简单。
我尝试在 Docker 上编译和执行它,但没有这样的运气——它失败了,因为缺少一些 libSwift 的东西。
那么,Swift 可以做这样的事情吗?
期待您的回答
解决方法
您可以构建一个静态链接标准库的二进制文件,或者使用 Swift 5.3.1 中引入的静态链接标志 - -static-stdlib
和 -static-executable
构建一个完全自包含的二进制文件。有关详情,请参阅 this forum post。
请注意,swift 仍然对 ICU 和 libc 有一些依赖,因此还不是完全可移植的