Фреймворки
Go
Деплой сервиса на Go.
Как Railpack собирает Go
Проект распознаётся по go.mod, go.work или main.go в корне. Railpack собирает статический бинарник
(CGO_ENABLED=0) и запускает его.
Какой пакет собирается (по приоритету):
- Модуль из
RAILPACK_GO_WORKSPACE_MODULE(дляgo.work). - Пакет из
RAILPACK_GO_BIN. - Корень репозитория, если в нём есть Go-файлы.
- Первый подкаталог в
cmd/.
Если в cmd/ несколько программ, укажите нужную через RAILPACK_GO_BIN.
Порт
Слушайте порт из переменной PORT на всех интерфейсах:
port := os.Getenv("PORT")
if port == "" {
port = "3000"
}
log.Fatal(http.ListenAndServe(":"+port, handler))Добавьте приложению переменную PORT со значением порта контейнера из домена.
Версия Go
Берётся из (по приоритету): mise.toml или .tool-versions, go.mod, переменной RAILPACK_GO_VERSION.
По умолчанию — 1.23.
CGO
Если нужны C-библиотеки (например, go-sqlite3), задайте CGO_ENABLED=1 — Railpack добавит компилятор и
системные библиотеки для сборки.
Полезные переменные Railpack
| Переменная | Что делает |
|---|---|
RAILPACK_GO_VERSION | Версия Go |
RAILPACK_GO_BIN | Какую программу из cmd/ собрать |
RAILPACK_GO_WORKSPACE_MODULE | Какой модуль workspace собрать |
CGO_ENABLED | 1 — включить CGO |