#go #deployment #amazon-elastic-beanstalk
#Вперед #развертывание #amazon-elastic-beanstalk
Вопрос:
Я пытаюсь создать двоичный файл go на своем локальном компьютере и загрузить двоичный файл в elastic beanstalk. Причина, по которой я хотел бы сделать это таким образом, вместо того, чтобы загружать пакет и разрешать его сборку во время развертывания, заключается в том, чтобы избежать проблем с зависимостями.
Когда я загружаю zip-файл с включенным двоичным файлом, он завершается с ошибкой на этапе сборки:
application.go:53:2: cannot find package "github.com/battle-gopath-server/..."
...
Failed to start This is eb-buildtask on build.
это означает, что он пытается создать application.go, а не просто запускать предоставленный двоичный файл и сталкивается с точными проблемами зависимостей, которых я пытаюсь избежать. Если я добавляю только двоичный файл (или просто оставляю application.go) в zip-папке, возникают другие проблемы, которые также подразумевают, что он ищет что-то для сборки и не может его найти (я попытаюсь найти сообщение об ошибке).
Несколько вещей, которые я уже попробовал / проверил:
- GOOS / ARCH= linux / amd64
- Я добавил файл .ebingore (не работает с или без)
- двоичный файл называется application, а основной файл go называется application.go
- двоичный файл находится в bin/
Я также попытался загрузить демонстрационный проект, предоставленный aws, сначала создав двоичный файл. Насколько я могу судить, он всегда пытается выполнить сборку, а не запускать предоставленный двоичный файл.
Итак, вопрос в том, как я могу пропустить этап сборки, чтобы elastic beanstalk просто запускал предоставленный двоичный файл приложения?
Комментарии:
1. Насколько мне известно, EB специально создает и развертывает проекты Go из исходного кода, похоже, он не создан для выполнения готовых двоичных файлов (если бы это было так, не было бы причин иметь тип стека «Go», поскольку двоичный файл Go, после сборки, является просто двоичным файлом).
2. Ознакомьтесь со вторым пунктом здесь . В нем говорится, что возможно развертывание двоичных файлов.
3. Вы предоставляете файл сборки в пакете или просто procfile?
4. Ни то, ни другое. Я не думал, что в этом нет необходимости, поскольку он упоминается только для «более сложных приложений go»