在GCP容器优化操作系统上构建GOOS和GOARCH值的可执行文件是什么?

时间:2018-04-16 14:39:57

标签: go google-cloud-platform google-kubernetes-engine

我正在编写一个脚本,该脚本将从Google云存储中下载可执行二进制文件并在Google云计算上执行。

但是,我不知道使用GOOS命令构建可执行文件的GOARCHgo build环境变量的正确值是什么。

2 个答案:

答案 0 :(得分:4)

容器优化的操作系统是Linux衍生产品,据我所知,所有GCE实例都是x86_64计算机。这台机器是一个n1-standard-1,具有稳定的COS图像:

user@instance-1 ~ $ uname -a
Linux instance-1 4.4.111+ #1 SMP Thu Apr 5 21:21:21 PDT 2018 x86_64 Intel(R) Xeon(R) CPU @ 2.50GHz GenuineIntel GNU/Linux

为构建COS使用

GOOS=linux GOARCH=amd64

答案 1 :(得分:-1)

以下是为各种处理器体系结构和操作系统构建Go二进制文件的示例:

#!/usr/bin/env bash

# Build go binaries for the 3 main architectures that we can use on 
tagged releases
for GOOS in darwin linux windows; do
    for GOARCH in 386 amd64; do
        go build -v -o gm-fabric-proxy-$GOOS-$GOARCH
    done
done

基本上GOOS告诉Go编译器你要编译哪个OS,GOARCH告诉编译器它需要遵循哪个处理器架构。

在基于unix的系统上,您可以运行此命令来查找处理器体系结构和操作系统内核信息:

Alecs-MacPro:~ user$ uname -a
Darwin Alecs-MacPro.local 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64

上面提供的脚本示例将为3个主要操作系统和2个主要体系结构创建二进制文件。