Как создать всеобъемлющую среду Go, соответствующую требованиям, изложенным ниже: «приложение должно компилироваться на общем сервере» - PullRequest
0 голосов
/ 22 сентября 2019

Небольшая предыстория:

Я создаю свое первое веб-приложение Go для школы.Профессор сказал, что я могу использовать Go.Я спросил его, могу ли я использовать последнюю версию 1.13, а не версию, установленную на сервере 1.10, для использования функции управления модулем и модуля обновленных ошибок.Он не сказал, что я ограничен 1.10 и даже дал мне контактную информацию администратора сервера.Я связался с администратором сервера с моим профессором CC'd, и он сказал, что не хочет обновлять серверную версию Go в середине семестра.Затем он включил инструкции о том, как загрузить, установить и использовать любую версию Go, которая мне нужна, в моем домашнем каталоге.

Выберите свою версию:

https://urldefense.proofpoint.com/v2/url?u=https-3A__golang.org_dl_&d=DwIBAg&c=eLbWYnpnzycBCgmb7vCI4uqNEB9RSjOdn_5nBEmmeq0&r=xVlE3d2OU7_91gzzPJ-U883SSY9flY_vnBT_UtgyRhs&m=PJRzUCRwEJfYe9AvVQS7rgrH7_GFMRVYMbM-rAdxnns&s=MP2UOVkBtxs2HAHOtuFtOa-Kph5bSoGLG-GBBZfyCck&e=

Настройте его для собственного использования:

https://urldefense.proofpoint.com/v2/url?u=https-3A__golang.org_doc_install&d=DwIBAg&c=eLbWYnpnzycBCgmb7vCI4uqNEB9RSjOdn_5nBEmmeq0&r=xVlE3d2OU7_91gzzPJ-U883SSY9flY_vnBT_UtgyRhs&m=PJRzUCRwEJfYe9AvVQS7rgrH7_GFMRVYMbM-rAdxnns&s=BPwlWIxbBPkx0L-LY4rH9G8pqcex6xnyTbXxWjGT6bw&e=

Я установил go 1.13 и обновил свои собственные envvars, чтобы отразить эту версию, и все работает.

Ну, другое требование - я должен передать своему профессору свой проект и скомпилировать его на сервере.Я думаю, что если я передам ему связку и дам ему указания о том, как его построить, то пока технически отвечаю требованиям проекта.

Мой вопрос: есть ли у Go что-нибудь, что потребуетmy Go v1.13 и упаковывает все так, чтобы проект мог компилировать на целевом сервере?Мне удалось найти решения только по принципу «, просто скопируйте двоичный файл проекта на ваш рабочий сервер », но это мне не помогает.Мне нужно, чтобы скомпилировать на производственном сервере.Кроме того, я попытался скопировать мой двоичный файл на рабочий сервер, и он не смог найти мои HTML-шаблоны (хранящиеся в каталоге ./ui/html/), но я думаю, что это будет решено в этом обсуждении или сохранено для другого вопроса SO позже.

student@universityserver:~$ ./web
INFO    2019/09/22 10:21:52 Starting server on :5089
INFO    2019/09/22 10:23:03 <ipaddress>:63527 - HTTP/1.1 GET /
ERROR   2019/09/22 10:23:03 handlers.go:29: open ./ui/html/home.page.tmpl: no such file or directory

Единственное, о чем я могу думать сейчас, - это просто добавить все, что им нужно (бинарный дистрибутив go amd64 и все модули), и написать скрипт, который обрабатывает все это (извлечение go в локальной папке, экспортenvvars, build и т.Ваш ученик

...