Нужно ли исполняемому файлу Swift файлы .swiftmodule, .swiftdoc и .build для запуска?

3

Я пишу свое приложение Swift для Ubuntu с помощью Vapor. И моя миссия - иметь наименьшее изображение Докера для производства. Я значительно изменил свой имидж, но я хотел знать, просто из любопытства, нужен ли мой окончательный исполняемый файл всем скомпилированным файлам .module, .doc и .build в том же каталоге?

Теги:
vapor
server-side-swift

1 ответ

2
Лучший ответ

tl; dr: Нет.

Папки/файлы, которые вы указали, являются побочными продуктами процесса сборки и могут быть безопасно удалены.

Когда дело доходит до дистрибутива, ваше приложение точно так же, как и любой другой исполняемый файл Linux. Вы должны иметь все динамически связанные библиотеки, доступные в целевой системе.

К ним относятся библиотеки времени выполнения Swift toolchain плюс любые скомпилированные C-модули вашего приложения (или рамки под ним), ссылки с (*).

Вы можете проверить зависимости исполняемого файла с помощью команды ldd. Некоторые из них доступны как пакеты, некоторые из них необходимо будет скопировать в целевую систему вручную.


(*) В случае приложения Vapor 2 такие C-модули являются libCHTTP.so и libCSQLite.so, которые помещаются в вашу папку сборки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню