适用于Docker机器的Golang Mac OSX版本

i.v*_*van 6 linux macos build go docker

我需要在Docker机器上运行Golang应用程序.

我正在使用Mac OSX,而​​Docker正在使用Linux虚拟机,因此在Mac上构建的二进制文件无法在Docker上运行.

我在这里看到两种方式:

  1. 在Mac上为Linux OS交叉编译二进制文件
  2. 将项目源复制到docker,在其上运行'go get'和'go build'

第一个是因为CGO(它在一些导入的库中使用)很难.

其次是因为'go get'操作而非常缓慢.

你能告诉我,在那种情况下哪种方式最常见?或者也许我做错了什么?

Teh*_*inX 3

这是一个即使使用 CGO 也可以使交叉编译变得超级简单的解决方案。

\n\n

最近,我在浪费了大量时间获取新的 Windows 构建服务器来构建我的 Go 应用程序后偶然发现了它。\n现在我只需在我的 Mac 上编译它,然后用它创建一个 Linux 构建服务器:

\n\n

https://github.com/karalabe/xgo

\n\n

非常感谢 P\xc3\xa9ter Szil\xc3\xa1gyi 别名 karalabe 提供的这个非常棒的软件包!

\n\n

如何使用:

\n\n
    \n
  • 运行 Docker
  • \n
  • 去获取 github.com/karalabe/xgo
  • \n
  • xgo --targets=windows/amd64 ./
  • \n
\n\n

还有很多选择!

\n\n

- 编辑 -

\n\n

差不多 3 年后,我不再使用它,但在基于 Linux 的 CD 管道中构建应用程序的 docker 映像仍然基于xgo.

\n