Развёртывание на Heroku
Heroku — это популярное решение для хостинга «всё в одном».
Для вашего приложения Heroku вам нужно только выбрать виртуальную операционную систему (стек) и предварительно установленные программные пакеты (buildpack). После установки инструментов командной строки Heroku вы можете использовать стандартные команды git для отправки кода на Heroku, где он будет скомпилирован из исходного кода и развернут.
Дополнительную информацию можно найти на сайте heroku.com.
Регистрация
Вам потребуется учётная запись Heroku. Если у вас её нет, пожалуйста, зарегистрируйтесь здесь.
Настройка CLI
Убедитесь, что у вас установлены инструменты командной строки Heroku.
Установка Homebrew
brew tap heroku/brew && brew install heroku
Другие варианты установки здесь.
См. альтернативные варианты установки здесь.
Вход
После установки CLI выполните вход с помощью следующей команды:
heroku login
…и следуйте инструкциям.
Настройка приложения
Перейдите на панель управления Heroku, чтобы получить доступ к вашей учётной записи, и создайте новое приложение из раскрывающегося списка в правом верхнем углу. Heroku задаст несколько вопросов, таких как регион и имя приложения, просто следуйте инструкциям.
Создание примера проекта
В этом руководстве мы будем размещать пример сервера HTTP Swift NIO — вы можете применить эти концепции к своему проекту. Давайте начнём с клонирования NIO:
git clone https://github.com/apple/swift-nio
Убедитесь, что наш только что клонированный каталог является рабочим каталогом:
cd swift-nio
По умолчанию Heroku развёртывает ветку main. Всегда убедитесь, что все изменения внесены в эту ветку перед отправкой.
Подключение к Heroku
Подключите ваше приложение к Heroku (замените на имя вашего приложения):
heroku git:remote -a your-apps-name-here
Выбор стека
На момент декабря 2023 года, по умолчанию Heroku использует стек Heroku 22:
heroku stack:set heroku-22 -a your-apps-name-here
Список доступных стеков находится здесь.
Выбор buildpack
Установите buildpack, чтобы научить Heroku работать со Swift. Buildpack сообщества Vapor — хороший buildpack для любого проекта на Swift. Он не устанавливает Vapor и не имеет специфичных настроек для Vapor.
heroku buildpacks:set vapor/vapor
Выбор версии Swift
Добавленный нами buildpack ищет файл .swift-version в корневом каталоге проекта, чтобы узнать, какую версию Swift использовать.
echo "5.9" > .swift-version
Это создаёт .swift-version со содержимым 5.9.
При выпуске новых версий Swift buildpack необходимо обновить, прежде чем вы сможете использовать последнюю версию.
Создание Procfile
Heroku использует Procfile, чтобы узнать, как запустить и выполнить ваше приложение. Это включает имя исполняемого файла и любые необходимые аргументы. Вы увидите $PORT ниже, это позволяет Heroku назначить определённый порт при запуске приложения.
web: NIOHTTP1Server 0.0.0.0 $PORT
Вы можете использовать эту команду в терминале, чтобы установить файл
echo "web: NIOHTTP1Server 0.0.0.0 $PORT" > Procfile
Содержимое этого файла может отличаться в зависимости от вашего фреймворка сервера. Для приложений Vapor содержимое Procfile по умолчанию следующее:
web: Run serve --env production --hostname 0.0.0.0 --port $PORT
Заключение
Теперь, когда мы добавили файлы .swift-version и Procfile, убедитесь, что они добавлены в main, чтобы они были включены в развёртывание:
git add .swift-version Procfile
git commit -am "Add Swift version file and Procfile"
Развёртывание на Heroku
Когда вы будете готовы к развёртыванию, выполните эту команду в терминале:
git push heroku main
Это займёт значительно больше времени, чем обычные операции git, так как Heroku будет собирать ваш проект, включая все зависимости, с нуля, проверять и развёртывать его.
Дополнительную информацию можно найти здесь.
The Swift Programming Language, Copyright © 2014-2025 Apple Inc.
Swift and the Swift logo are trademarks of Apple Inc.
Documentation for Swift 6.0.3
https://www.swift.org/documentation/server/guides/deploying/heroku.html