Я довольно новичок в heroku и хочу предложить людям легко установить мое приложение на свой собственный экземпляр с помощью кнопки «Deploy to heroku», как описано здесь https://devcenter.heroku.com/articles/heroku-button.
Я теперь создал app.json
в моей ветке разработки: https://github.com/scribble-rs/scribble.rs/blob/develop/app.json
{
"name": "Scribble.rs",
"description": "A multiplayer drawing game for the browser",
"repository": "https://github.com/scribble-rs/scribble.rs",
"keywords": ["game", "multiplayer", "ephemeral"]
}
Однако на самом деле тестируем кнопку, вызывая https://dashboard.heroku.com/new?template=https%3A%2F%2Fgithub.com%2Fscribble-rs%2Fscribble.rs%2Ftree%2Fdevelop В результате Heroku запустит процедуру сборки по умолчанию для go
-проектов. Однако из-за того, что полученный бинарный файл не содержит ресурсов, необходимых для запуска приложения, приложение будет собираться, но при запуске будет sh.
Чтобы это исправить, я бы вместо этого нужно запустить его с docker -buildpack. Однако я не смог найти никакой документации по этому конкретному c сценарию использования, хотя он казался довольно общим. Для развертывания через GitHub с помощью GitHub-соединения на вкладке «Развертывание» приложения вы можете указать heroku.yml
, что я и сделал: https://github.com/scribble-rs/scribble.rs/blob/develop/heroku.yml
build:
docker:
web: Dockerfile
Однако в случае развертывания по щелчку этот файл, похоже, игнорируется, и вместо этого я должен явно указать пакет сборки через app.json
. Хотя я нашел несколько репозиториев GitHub с docker -buildpacks, мне не понравилось это решение, так как я должен был доверять некоторому случайному репозиторию, который в любой момент мог либо сломаться, либо испортить sh.
Как лучше всего go решить эту проблему?