gpt4 book ai didi

linux - 在我的服务器上部署和构建我的 go 应用程序

转载 作者:IT王子 更新时间:2023-10-29 00:49:31 24 4
gpt4 key购买 nike

我是全新的(顺便说一句,它看起来棒极了)。

所以我想在 revel 框架中构建一个“网络”应用程序。问题是我在我的 mac 上编写代码(os:darwin,arch:amd64),我想在我的服务器上部署应用程序(os:ubuntu 12.04,arch:amd64)。我在本地“去获取” Revel (所以 bin/revel 它是:Mach-O 64 位可执行文件)在我的服务器上不可执行。

现在,当我推送(使用 git)时,我有一个用于构建应用程序的接收后脚本(revel build myapp/path/to/deploy)。之前我曾尝试在我的服务器上“去获取”狂欢,但它也失败了。

它不起作用,我能理解为什么,但我不知道如何获得可行的工作流程:

  1. 我的 mac 上的代码
  2. 推送我的代码(使用 git)
  3. 在服务器上构建应用程序

PS:我读过http://blog.gopheracademy.com/auto-deploy-revel-site , http://revel.github.io/manual/deployment.html以及关于交叉编译的文章)

最佳答案

我不确定这是否有帮助..但这里是..

你的确切情况是我目前每天在用 Go 开发我的第一个合适的网络应用程序时所做的事情。我在 Windows 笔记本电脑(虽然工作很无聊……我是工作场所的 .NET 开发人员!)和家里的 Mac 上进行开发。然后我将它部署到 Digital Ocean 上托管的 Ubuntu 服务器。

我的工作流程是:

  • 进行任何更改。
  • 提交到存储库 (BitBucket)
  • 从 repo pull (无论它在什么地方——例如,在我的 Ubuntu 服务器上)
  • go build 服务器上的代码
  • go get 它提示的任何我在服务器上没有的库(例如,gorilla/mux 今天不在服务器上,所以我刚刚运行了)
  • go build 再次(如果适用)

..然后在服务器上运行它。

当开始这个工作流程时(我仍在尝试使用 bash 脚本等来完善它......)我发现跨环境的一致 GOPATH 确实很有帮助。

比如我在每台机器上的GOPATH是:

  • Windows:C:\GOPATH
  • 苹果机:~/go-code/
  • Linux: /home/simon/go-code/

它们中的每一个都具有完全相同的结构:

  • $GO路径
    • 来源
      • github.com/
        • gorilla /
        • 狂欢/
        • 等.../
      • 西蒙
        • WebApp1 <--- git 仓库
          • .git
          • 来源
        • WebAPP2
        • WebApp3

...等等这极大地简化了整个事情,并使我能够无缝地跨 3 个环境进行开发。

我仍在习惯 Go 和此设置(作为我的核心 .NET 开发人员)- 但它现在似乎正在发挥作用。

关于linux - 在我的服务器上部署和构建我的 go 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25024893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com