Пример Axum-приложения для деплоя можно найти на Гитхабе.
Сборка приложения
При сборке приложения используется среда:
-
Rust
-
Cargo
Сборка выполняется в корне репозитория или в директории, которую вы укажете в поле «Путь к директории проекта».
Шаблон использует multistage build: на первом этапе собирается бинарный файл в режиме release, а на втором запускается готовое приложение.
По умолчанию во время сборки будет выполнена команда:
cargo build --locked --release
Убедитесь, что в проекте присутствует файл Cargo.toml, и в нем корректно описаны зависимости приложения. Флаг --locked фиксирует версии зависимостей из Cargo.lock, поэтому файл Cargo.lock должен быть актуальным и добавленным в репозиторий.
Если для сборки нужны дополнительные системные пакеты, например библиотеки для работы с OpenSSL, укажите их в поле «Зависимости». Они будут установлены до запуска cargo build.
Выбор бинарного файла для запуска
После сборки App Platform выбирает бинарный файл запуска в следующем порядке:
-
Если в команде сборки явно указан флаг
--bin <name>или--bin=<name>, будет использован этот бинарный файл. -
Если флаг
--binне указан, шаблон попробует определить бинарный файл по значениюdefault-runиз файлаCargo.tomlчерезcargo metadata. -
Если
default-runне задан, шаблон просканирует директориюtarget/release. -
Если найден ровно один исполняемый бинарный файл, будет запущен он.
Если кандидатов несколько, сборка завершится с ошибкой. В этом случае укажите бинарный файл явно в команде сборки:
cargo build --locked --release --bin <name>
Требования к приложению
Убедитесь, что приложение слушает 0.0.0.0, а не 127.0.0.1, иначе внешние подключения работать не будут.