2017-02-08 2 views
1

Я использую это руководство, чтобы построить небольшой Go приложение:Развертывание Go App с Heroku

https://codegangsta.gitbooks.io/building-web-apps-with-go/index.html

Структура папки выглядит следующим образом:

go/src/fileserver/ 
       main.go 
       fileserver.exe 
       public/ 
         index.html 
         css/ 
          bootstrap.min.css 

Инструкции по развертыванию упоминается «PROCFILE »и« .godir », но немного непонятно, что они должны содержать или где они должны быть реализованы. Я не совсем уверен, правильна ли моя структура папок.

Ошибки я получаю:

Failed to detect set buildpack https://github.com/kr/heroku-buildpack-go.git 

ответ

2

Am будет процитировать в документации по Heroku много.

PROCFILE

Определение PROCFILE

Используйте PROCFILE, текстовый файл в корневом каталоге приложения, явно объявить, что команда должна быть выполнена, чтобы запустить приложение. PROCFILE в примере приложения, развернутого выглядит следующим образом:

web: go-getting-started

Объявляет один тип процесса, веб, и команду, необходимую для его запуска. Здесь важна сеть имен. Он объявляет, что этот тип процесса будет прикреплен к стекю HTTP-маршрутизации Heroku и будет получать веб-трафик при развертывании. Команда, используемая здесь, go-getting-started - это скомпилированный двоичный файл приложения для запуска. Procfiles может содержать дополнительные типы процессов. Например, вы можете объявить один для фонового рабочего процесса, который обрабатывает элементы из очереди.

Define a Procfile

Таким образом, в вашем примере вы бы файл с именем 'PROCFILE' в корневом каталоге, при этом содержание является:

web: fileserver 

.godir

.godir файл это просто файл, который просто указывает корневой каталог вашего проекта go. Это полезно, когда вы говорите, что есть несколько модулей для веб-приложения на разных языках. Так, например, задано репо со следующим деревом.

github.com 
    └──someuser 
     └── somerepo 
      ├── .godir 
      ├── go_module 
      └── node_module 

Если содержимое вашего файла .godir будет:

github.com/someuser/somerepo/go_module 

Более подробное объяснение того, что .godir для и, когда оно используется, можно найти here.

Смежные вопросы