Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何创建一个包容各方的围棋环境,以满足所述要求:;应用程序必须在共享服务器上编译;_Go_Deployment_Package_Shared Hosting - Fatal编程技术网

Go 如何创建一个包容各方的围棋环境,以满足所述要求:;应用程序必须在共享服务器上编译;

Go 如何创建一个包容各方的围棋环境,以满足所述要求:;应用程序必须在共享服务器上编译;,go,deployment,package,shared-hosting,Go,Deployment,Package,Shared Hosting,一点背景故事: 我正在为学校创建我的第一个Go web应用程序。教授说我可以走了。我问他是否可以使用最新版本1.13而不是服务器上安装的版本1.10来利用模块管理功能和更新的错误模块。他没有说我被限制在1.10,甚至给了我服务器管理员的联系信息。我和我的CC教授联系到服务器管理员,他说他不想在学期中更新服务器的GO版本。然后,他在我的主目录中包括了如何下载、安装和使用我需要的任何版本的Go的说明 选择您的版本: 将其设置为您自己使用: 我安装了go 1.13并更新了自己的EnvVar,以反映

一点背景故事:

我正在为学校创建我的第一个Go web应用程序。教授说我可以走了。我问他是否可以使用最新版本1.13而不是服务器上安装的版本1.10来利用模块管理功能和更新的错误模块。他没有说我被限制在1.10,甚至给了我服务器管理员的联系信息。我和我的CC教授联系到服务器管理员,他说他不想在学期中更新服务器的GO版本。然后,他在我的主目录中包括了如何下载、安装和使用我需要的任何版本的Go的说明

选择您的版本:

将其设置为您自己使用:

我安装了go 1.13并更新了自己的EnvVar,以反映这个版本,并且一切正常

嗯,另一个要求是我必须把我的项目交给我的教授,并且它必须在服务器上编译。我在想,如果我给他一个包,告诉他如何建造它,那么到目前为止,我在技术上已经满足了项目的要求

我的问题是,Go是否有任何东西可以占用我的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
student@universityserver:~$/web
信息2019/09/22 10:21:52启动服务器的时间:5089
信息2019/09/22 10:23:03:63527-HTTP/1.1获取/
错误2019/09/22 10:23:03处理程序。转到:29:打开。/ui/html/home.page.tmpl:没有这样的文件或目录
我现在唯一能想到的就是基本上添加他们需要的一切(go amd64二进制发行版和所有模块),并编写一个脚本来处理所有这些(在本地文件夹中提取go、导出envvars、构建等等)

亲爱的,教授

将这个tarball复制到您的主目录,提取,运行
build\u my\u goapp.sh
script

真诚地, 你的学生


在我的例子中,答案是我可以提供一个
Makefile
,它可以做任何我需要它做的事情

(这实际上是一个很好的实践,如果不是一个期望的话,那就是一个交上来的项目。)


要求是我的项目需要在服务器上编译,并且我必须提供一个
Makefile
。因此,只要一切都发生在用户的环境中,而不是需要
sudo
才能正确安装,就可以为我的项目下载、安装和设置Go环境。服务器没有Docker

该语言称为“Go”,而不是“GoLang”,我将使用1.10跟随流程。供应商依赖性,而不是使用Go模块。使用而不是新的1.13错误功能。关于模板:应用程序可能假设当前工作目录是源目录树中
/ui/html/
上方的目录。如果只将可执行文件复制到另一台机器上,该目录将不存在。围棋1.10没那么老。就用它吧。对于一个大学项目,你不太可能需要mods。自动售货机应该很好。另一方面在我的大学时代,我经常把任务做得比必要的更难,只是为了好玩,我学到了很多。。。因此,无论哪种方式,祝你好运:)如果服务器有docker,那么使用包含Go编译器特定版本的正式docker映像(例如使用DockerHub中的映像“golang:1.13”)来构建就很简单了。