Go语言中文网 为您找到相关结果 428

在 Windows 上将 Golang 代码编译成 Linux 可执行文件

在部署时,我通常会先将应用编译打包。公司开发用的电脑基本都是 Windows 环境,当我们在使用 go build 编译打包时,打包好的文件通常 *.exe。这时候就存在一个问题,我们的打包好的服务最终部署的服务器环境是 Linux 环境而非 Windows。因此我们在打包前需要设置以下环境变量(假设我们的 go 是 amd64 的): set GOARCH=amd64 set GOOS=linux 设置该变量后我们再次使用 go build 就会发现打包出来的文件是 linux 可执行文件了。 接下来将打包好的 Linux 可执行文件拷贝到服务器上,chmod 700 设置该文件权限为可执行权限。然后使用 ./ 运行就 ok 了。 参考 https://stackoverflow.com/...阅读全文

博文 2020-01-04 00:32:45 清十郎sama

cgo编译出来的文件怎么用?

使用cgo编译出来了c代码,然后用go install编译出来了一个.a文件,这个.a文件是静态库么?我用ar把它解压开后,发现如下文件: -rw-r--r-- 1 root root 397 Apr 3 22:32 __.PKGDEF -rw-r--r-- 1 root root 6.1K Apr 3 22:32 _all.o -rw-r--r-- 1 root root 1.4K Apr 3 22:32 _cgo_defun.6 -rw-r--r-- 1 root root 252 Apr 3 22:32 _cgo_import.6 -rw-r--r-- 1 root root 12K Apr 3 22:32 ...阅读全文

golang编译过程的一个奇怪问题

在编译golang程序的时候,出现如下错误: cannot create /go.o: No such file or directory make: *** [build/mds] Error 2 错误原因 go build的时候会创建临时文件,猜测与临时目录相关的问题,查看了下源代码 [src/cmd/ldlib.c 652-675] static void hostlinksetup(void) { char *p; if(linkmode != LinkExternal) return; // create temporary directory and arrange cleanup if(tmpdir == nil) { tmpdir = mktempdir(); at...阅读全文

博文 2015-06-17 20:03:45 kai_ding

golang中("import cycle not allowed")错误

golang不允许循环导包,如果检测到import cycle,会在编译时报错,通常import cycle是因为设计错误或包的规划问题。 import( "package A" "package B" ) 如果package A中已经导入package B,而本package中又导入package B 或者 package A依赖package B,同时 package B 依赖package A 这样就会在编译时报 "import cycle not allowed"。 如何避免重复导入包的问题,就需要在设计时规划好包...阅读全文

博文 2017-03-05 05:55:22 skh2015java

golang热编译工具

概览 项目地址:https://github.com/beego/bee 中文介绍:https://beego.me/docs/install/bee.md bee也可以用于beego以外的项目,反正我只用热编译的功能,哈哈。 使用方法: 你的项目在$GOPATH/src/bee_test,该目录有一个main.go。 进入项目目录 输入bee run,当你修改了源代码的时候,bee就会自动编译并运行你的项目(相当于自动重新执行go run main.go)...阅读全文

博文 2019-02-23 12:34:42 Daryl_Xu

GO从源代码编译

/*适合windows和powershell上运行 */ cd D:\go\src 源代码目录 ;; 定义基础目录,在源代码目录上一层 $env:GOROOT="D:\go" ;; 位,64位 $env:GOARCH=amd64 ;; 平台windows $env:GOOS=windows ;; 指定编译器用go自己的编译器,需要先下载好。但是从gcc编译的话要从1.4进行编译,需要gcc $env:GOROOT_BOOTSTRAP=D:\go1.7\bin\ ;; 指定是否支持cgo 需要gcc支持 $env:CGO_ENABLED=0 ;; 开始执行 ./all.bas...阅读全文

博文 2017-01-20 10:00:03 捍卫机密

golang在window平台交叉编译

情景设定:操作系统:window7x64安装目录:c:/go设置环境变量: PATH=%PATH%;C:/go/bin GOROOT= C:/go GOPATH = D:/goproject 进行交叉编译的原理是设置GOARCH(cpu架构)和GOOS(操作系统)然后执行c:/go/src/make.bat --no-clean将c:/go/src的源码编译成各个ARCH下对应OS的包打包好的批处理文件如下: set CGO_ENABLED=0 ::x86 set GOARCH=386 set GOOS=windows call make.bat --no-clean set GOOS=linux call make.bat --no-clean set GOOS=freebsd call ...阅读全文

博文 2014-10-04 19:27:26 chen yuwen

C# 调用 Golang DLL

1. 编写Go文件 注意,import "C" 需要系统中安装gcc,否则会报错: exec: "gcc": executable file not found in %PATH% export不能省略,否则C#语言无法找到入口 package main import "fmt" import "C" func main() { } //PrintHello : //export PrintHello func PrintHello() { fmt.Println("Hello From Golang") } //Sum : //export Sum func Sum(a, b int) int { return a + b } 完成之后,使用go命令导出DLL文件 go build --b...阅读全文

博文 2019-03-17 18:34:41 Wenchao

cgo编译问题,Undefined symbols

我写了个【add.c】文件里面写着 ```c #include "add.h" #define b 9 int add(int a){ return a+b; } ``` 【add.h】里面定义了函数 int add(int a); 然后我在cgo_test.go里里面这样写到 ```go package main import( /* #include "add.h" */ "C" "fmt" ) func main() { fmt.Println(C.add(5)) } ``` 编译的时候就出现 Undefined symbols for architecture x86_64: ...阅读全文

论Golang 给我惊喜的Go语言

今日凌晨,看了Google推出的编译型静态语言Golang的见解。 感觉这就是我一直期望得到的一种编程语言。简单概括我喜欢的地方: 1. 语法特性非常少,精简到没有多余的语法特性,甚至没有泛型; 2.运行效率特别高,我估计会高于C++; 3.可以编译到不同的OS,实现跨平台,并且不借助于虚拟机(JVM等)。 4. 编译型强类型编程语言 说说第一点 :很符合本人自己的喜好,本人厌恶C++里太多的语法特性。比如,光一个子类继承自父类,就有public继承、private继承的区别,多重继承等大量的特性,带来的弊端往往多余带来的好处。 同样是面向对象的编程语言,Java和C#都是只有public继承,人家也能实现所有的东西,C++这样做,纯属多余。另外C#6.0又玩出写什么新特性,说是可以减小代码...阅读全文

博文 2015-08-27 10:00:07 lsm135

go编译静态文件

最近用go语言写了个 [成都房地产薪酬](http://www.cdhr6.com) 网站,抓取网上的招聘信息并进行统计。中间遇到一些坑在这里记录下来方便以后查阅 go在编译成二进制文件时并没有把我们的静态资源文件编译进去,如果我们开发的是web应用的话就需要想办法把我们的静态文件也编译进去,这里我们使用 [go-bindata](https://github.com/jteeuwen/go-bindata) 它可以把我们的静态文件生成 .go 文件,这样就可以编译成二进制文件,项目启动的时候再把这个 .go 文件再释放成静态文件 目录结构: ![目录结构](http://img.blog.csdn.net/20170927135450027?watermark/2/text/aHR0cDo...阅读全文

博文 2017-09-28 01:53:54 chen2991101

[翻译]编译器(1)-使用 Go 开发编译器

好文不多说,系列长文,大家耐心等吧。原文在此。 ————翻译分隔线———— 编译器(1)-使用 Go 开发编译器 概述 我对编译器的工作原理已经感兴趣很久了。神秘的指令和奇异的行为总是会令我迷惑不已。也从未真正理解优化是如何进行的,以及编译器又是如何知道我到底做错了什么。 当我决定学习如何编写编译器的时候,我发现有许多关于这个领域的术语和缩写。什么是 SLR 或 LALR 解析器?什么是该死的词位(lexeme)或有限自动机(finite automata)?什么是递归下降分析(recursive-descent parsing)?什么是 AST? 最开始的时候,这真是铺天盖地。 我发现,最大的障碍是网络上的在线教程、指南和其他学习材料并没有教你如何编写编译器或解释器。更正一下,它们没有教你...阅读全文

博文 2014-10-09 16:19:57 mikespook

Go1.10.1在Idea上能编译 , 但是标红 ..

![image.png](https://static.studygolang.com/180426/c222ef360501d6fc90394d62684836b7.png) 有种淡淡的忧伤 ~~ 有遇到这种这种情况的小伙伴么?? 有啥办法解决这种不兼容的情况么?? 各种查看Idea这货直接抛出一个警告(不知道是不是这个原因): ![image.png](https://static.studygolang.com/180426/2b5c915a97cc853d9d823bc63dac3a3e.png...阅读全文

博文 2018-04-26 16:55:26 LFANG

golang switch 之坑

昨天在星球星主分享了一个题目,是关于一行结束不加分号直接换行,编译期会直接加分号的题目,随后又分享了一道题,如下 import "fmt" func False() bool { return false } func main() { switch False() { case true: fmt.Println("true") case false: fmt.Println("false") } } 其实乍一看,是false,但是不妨你写成如下看看 func main() { switch False(){ case true: fmt.Println("true") case false: fmt.Println("false") } } 完全不同的两种结果 对于第一种结果是因为编译期...阅读全文

博文 2019-05-22 17:34:53 ochipe

gdb调试代码的问题

(gdb) set $bb ="ccccc" (gdb) print $bb $17 = "ccccc" (gdb) print &$17 $18 = (char (*)[6]) 0x810290 (gdb) p (char (*)[6]) 0x810290 A syntax error in expression, near `)[6]) 0x810290'. (gdb) p (char *) 0x810290 A syntax error in expression, near `)* 这是我模拟的一个例子,我之前写c的gdb调试是完全可以强制转换的,比如 p (int *)0x11111, 并且我在我的机器上用编译了个c,gdb这...阅读全文

Golang 优化之路——自己造一个日志轮子

写在前面 Golang 的log包内容不多,说实话,直接用来做日志开发有些简易。主要是缺少一些功能: 按日志级别打印和控制日志; 日志文件自动分割; 异步打印日志。 按日志级别打印和控制日志 我们实现的日志模块将会支持4个级别: const ( LevelError = iota LevelWarning LevelInformational LevelDebug ) 定义一个日志结构体: type Logger struct { level int l *log.Logger } func (ll *Logger) Error(format string, v ...interface{}) { if LevelError > ll.level { return } msg := fmt....阅读全文

博文 2017-07-14 04:06:21 Cyeam

Google公布实现Go 1.5自举的计划

本文转自InfoQ的公众号,分享给大家。 ​ Google最近公布了实现Go 1.5自举(Bootstrap)的计划。相关文档的作者是Go核心开发者Russ Cox,他在Go语言上已经耕耘了接近6年。据Russ介绍,Google就“如何从Go源码树中去除所有的C程序”已经酝酿了一年。 自举(Bootstrapping) 是这样的过程,“用要编译的目标编程语言编写其编译器(或汇编器)”。一般而言,自举有几个优势,比如: 用于测试被自举的语言; 支持使用通常更为高级、提供更多高级抽象的语言来编写编译器; 编译器也可以得益于语言层面的任何改进。 如前所述,Google在一年前就开始了从Go源码树中去除C代码的努力,转换计划分为5个步骤: 第1阶段——开发一个从C语言到Go语言的翻译器,将现有的C编...阅读全文

博文 2015-03-24 01:00:01 codemanship

go语言之初始化的构造函数

// File represents an open file descriptor. type File struct { *file } // NewFile returns a new File with the given file descriptor and name. func NewFile(fd uintptr, name string) *File { h := syscall.Handle(fd) if h == syscall.InvalidHandle { return nil } f := &File{&file{fd: h, name: name}} //初始化一个结构,返回地址 从复合声明中获取地址,意味着告诉编译器在堆中分配空间,而不是栈中。 runtime...阅读全文

博文 2015-06-17 23:05:55 zistxym

go build

golang中的 +build 参考下这波文章 https://studygolang.com/articles/919 官方文档 https://golang.org/pkg/go/build/#hdr-Build_Constraints // +build linux,windows // ‘,’ 为且的关系 这一条就冲突了一定不会被编译 // +build linux windows // ‘ ’ 为或的关系 这一条就会被编译 // +build !ssd,linux windows // +build windows // 如果有多行的话, 多行之间为 且的关系 除了操作系统 & 处理器架构的还有自定义的 。 // +build ignore #testadd.go // +buil...阅读全文

博文 2019-05-05 18:34:58 个00个

Linux下Golang编译程序在后台运行及开机启动

编译 > go build test.go 指定输出文件名 > go build -o custom_name 修改可执行权限 > chmod 777 程序名称 程序后台运行 > nohup ./custom_name & 不输出错误信息 > nohup ./custom_name >/dev/null 2>&1 & 关闭程序 查询进程号 > ps aux|grep custom_name 关闭进程 > kill 进程编号 开机启动glang > vi /etc/rc.local 添加 cd [程序路径,如:/home/website/www/] nohup ./custom_name...阅读全文

博文 2019-05-08 09:35:01 承诺一时的华丽

grpc(5):使用grpc+consul 开发服务调用

1,consul 服务发现 在使用了几次之后终于感受到了这个系统挺好的了。 在一个小的团队里面,要做服务发现,做的简单高效。 可以直接使用 consul 作为服务发现,服务检查的系统。 不用自己去开发了。真的很方便,只要部署下就可以了。 github 上放了代码,都是很简单的。 https://github.com/freewebsys/grpc-go-demo 2,重新研究consul启动 发现之前是使用dig 进行操作的,因为consul官方网站也是推荐使用的。 但是其实可以使用ping ,nslookup 也是一样的。 但是需要修改consul的端口。 consul agent -dev -ui -server -node=consul-dev -client=10.0.2.15 -d...阅读全文

博文 2017-07-12 02:30:18 freewebsys

golang的项目结构 相关知识

### 项目结构 ``` ├── bin │ ├── login │ └── main ├── pkg │ └── darwin_amd64 │ └── login │ └── auth1.a ├── src │ ├── cfg │ │ └── testcfg.go │ ├── db │ │ ├── innerdb │ │ │ └── innerdb.go │ │ └── db.go │ ├── login │ │ ├── auth1 │ │ │ └── auth1.go │ │ ├── auth2 │ │ │ └── auth2.go │ │ └── login.go │ └── main.go └── Makefile ``` *** ### 两种包导入方式 ##### local im...阅读全文

Go语言开发环境1.6

http://www.golangtc.com/download 下载1.4.2和1.6.2 tar -zxvf go1.6.2.linux-amd64.tar.gz -C /usr/local/src/ln -s /usr/local/src/go1.6.2 /usr/local/go 设置go的环境变量 vi /etc/profile source /etc/profile 写一个简单的go例子 sayhello.go 和同属于sayhello 目录中的 .go源代码文件 会生产代码包(.a) 文件类似c语言的静态库,每个源代码都可以有一个init函数 hello.go 导入sayhello代码包 调用代码包中sayhello.go源代码的Hello方法输出字符串 import 格式 【...阅读全文

Go语言开发工具 LiteIDE x10 发布

GO语言开发工具liteide x10发布,更新了GO调试插件。 LiteIDE项目: 操作系统: Windows / Linux x86 / Linux x86_64 / MacOS X 10.6 项目主页: http://code.google.com/p/golangide 项目源码 : http://code.google.com/p/liteide 讨论组: http://groups.google.com/group/liteide-dev 下载链接: http://code.google.com/p/golangide/downloads/list IDE基本特性: 以MimeType为基础构建的IDE环境变量管理和切换功能源码编译系统管理和切换功能简洁和开放的调试系统KATE...阅读全文

golang var _ 在编译期间执行

## 证明如下 ``` package main import "fmt" func main() { } // make sure that all the initialization happens before the init() functions // are called, cf https://golang.org/ref/spec#Package_initialization var _ = initDebug() //这是在编译期间就执行 func initDebug() bool { fmt.Println("in the initDebug happens before the init()") return true...阅读全文

Go语言使用组合的方式实现多继承

在大多数面向对象的编程语言中多继承都是不支持的。因为在基于class的体系中,多继承极大地增加了编译器的复杂性。 Go语言使用组合的方式实现继承,因此也可以很简单的实现多继承。 //使用组合的方式实现多继承 type Phone struct{} func (p *Phone) Call() string { return "Ring Ring" } type Camera struct{} func (c *Camera) TakeAPicture() string { return "Click" } //多继承 type CameraPhone struct { Camera Phone } func structTest0803() { cp := new(CameraPhone) ...阅读全文

java语言到底是翻译型还是解释型

背景 计算机执行的指令都是L0 翻译过程会将高级语言编译成新的L0程序 解释过程不会生成新的L0程序,由L0编写的解释器去解释L1程序 程序翻译 将较为高级的语言L1,通过编译,翻译成计算机可执行的语言L0 翻译型语言:C/C++、Object-C、Golang 程序解释 通过可执行语言L0实现一个新程序---解释器,直接在解释器上运行L1语言 解释型语言:Python、Php、Javascript 结论 java语言是翻译+解释型语言,C#也是 【翻译】将java程序翻译为JVM字节码 【解释】通过JVM程序解释字节...阅读全文

博文 2019-11-08 12:32:55 更多精彩内容JAVA到底是编译型语言还是解释型语言?疾风劲草_233JVM、Java编译器和Java解释器一个会写诗的程序员浅谈Java语言是编译型还是解释型值得一看的喵编程语言乱炖码园老农解释型语言python小生很忙

Goland无法使用,cmd可以正常编译,但编译后也无法使用

求助 今天学习io的时候IDE不能用了 百度了相关办法无法解决 ![Goland.png](https://static.studygolang.com/180511/3af19a26528d4a8fca0386182d119619.png)GoLand界面及报错 ![building.png](https://static.studygolang.com/180511/c27363b4c7b12e88de2682487bcba433.png)编译正常 ![run.png](https://static.studygolang.com/180511/8631572bf3d63254090367ba969678b5.png)编译后的文件运行时报错 ![goenv.png...阅读全文

主题 2018-05-11 19:53:37 BuTn

golang 处理多个项目src编译问题 2.0

golang 处理多个项目src编译问题 2.0 和之前那个版本区分开来,改了一下脚本代码,支持多个package export GOPATH=$HOME/pj/go02 export PATH=$PATH:$GOPATH/bin export GOBIN=$GOPATH/bin export GOSRC=$GOPATH/src all: cd $GOPATH/src for file in $GOPATH/src/* do if test -d $file then echo ${file:(${#GOSRC}+1):${#file}} export PACKAGENAME=${file:(${#GOSRC}+1):${#file}} rm -rf $GOPATH/bin/$PACKAGE...阅读全文

博文 2014-12-14 08:00:01 诸葛囧明

难上加难!扒一扒IDC行业背后那些不为人知的心酸......

大家都说IDC行业待遇好,薪酬高,事实真的如此吗?光鲜背后的心酸和压力只有IDC人自己知道,来看看IDC从业者都是怎么描述的。 ​01 把人逼成“鬼”的IDC运维夜深人静,凌晨两点,IDC运维团队还在悄无声息的忙碌中。客户的条件越来越高,硬件更新越来越快,业务需求越来越紧急,运维的压力也越来越大。业务天亮就得上线,这一切只能在业务最少的时候进行,设备半夜2点以后才能进场......两眼紧盯屏幕,监控设备运转,为保障业务稳定运行,7X24小时运维值守已经成为习惯,脸色惨白自嘲“吸血鬼”,偶尔也产生错觉,自己到底是人还是鬼? 02 中年危机下不知所措的IDC销售现在经济情况不太好,客户是能省钱就省钱,需求还一天三变!再加上这两年云计算的冲击,业务量越来越惨淡。但是公司对增长的预期丝毫没有减弱,前...阅读全文

博文 2020-06-05 17:12:47 gogogochong

Windows 下GCC编译C程序调用Golang静态库和C动态库

1. 编译golang 静态库 package main import ( "C" "fmt" ) //export Foo func Foo(a, b int) int { return a + b } //export Bar func Bar() { fmt.Println("Hello, I'm LiLei.") } func main() { } 使用命令编译得到静态库和头文件 go build -o main.a -buildmode=c-archive main.go 2. 编写C的动态库 demo.h int foo(); int bar(); demo.c #include "demo.h" #include int foo(){ int a[3] = ...阅读全文

博文 2018-02-06 22:33:04 hotkit

go build 报错:invalid operation

connect文件夹下有一个clientConnect.go ``` package connect import ( "fmt" "net" ) type clientConnect struct { name string conn net.Conn } func (clientConn *clientConnect) close() { if err := clientConn.conn.Close(); err != nil { fmt.Println("错误:" + err) } } ``` 编译的时候报错:clientConn.conn.Close()说这一行invalid operation,请问是什么原因...阅读全文

golang之cgo---调用C/C++动态库函数

之前说过golang调用C代码的方式可以通过cgo或者是swig,而cgo是不能使用C++相关的东西的,比如标准库或者C++的面向对象特性。怎么办,将c++的功能函数封装成C接口,然后编译成动态库,或者是功能较为简单的可以直接嵌入到go源文件中。   cgo的使用是在linux平台上,在windows平台上可以配置交叉编译器。 动态库头文件:myfuns.h #pragma once #include #include #include #include void fun1(); void fun2(int a); int func3(void **b); // others 动态库名:myfuns.so...阅读全文

博文 2016-07-17 03:00:01 FreeApe

如何使用cgo编译出来的文件

我想在c中调用go的函数,我用go tool cgo test.go命令生成了一些文件,但是这些文件都是做什么的,这个有没有个说明什么的?我要如何来使用这些文件呢? total 32K -rw-r--r-- 1 root root 1.4K Apr 3 03:26 _cgo_defun.c -rw-r--r-- 1 root root 792 Apr 3 03:26 _cgo_export.c -rw-r--r-- 1 root root 805 Apr 3 03:26 _cgo_export.h -rw-r--r-- 1 root root 13 Apr 3 03:26 _cgo_flags -rw-r--r-- 1 root root 339...阅读全文

Golang 编译Mac、Linux、Windows多平台可执行程序

file Golang 支持在一个平台下生成多个平台运行包 编译之后直接可执行,使用起来非常方便 1.Mac Mac下编译Linux, Windows平台的64位可执行程序: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go 2.Linux Linux下编译Mac, Windows平台的64位可执行程序: CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test...阅读全文

博文 2020-04-30 03:32:45 开发者阿俊

HTML模板

# HTML模板 # ---------- > 1.创建demo文件夹,在其下创建main.go文件 package main import ( "html/template" "os" "log" ) func main() { const templ = `

A:{{.A}}

B:{{.B}}

` t := template.Must(template.New("escape").Parse(templ)) var data struct{ A string // 不受信任 B template.HTML // 受信任 } data.A = "Hello" data.B = "World" if err := t.Execute(os.S...阅读全文

博文 2018-07-23 22:09:44 Justin94

go编译github.com/pebbe/zmq4失败

github.com/pebbe/zmq4是对zeromq 4.x的go语言封装,在go中使用了cgo混合编译。 我安装完zeromq4.1.3后,编译时控制台输出如下,麻烦大神看看是什么问题。 [ `go build` | done: 478.984962ms ] # github.com/pebbe/zmq4 gcc did not produce error at completed:1 on input: #line 3 "/Users/besthaos/work/study/go/workspace/src/github.com/pebbe/zmq4/zmq4.go" #include #include 阅读全文

LiteIDE X32 已发布

源码 https://github.com/visualfc/liteide 网站 http://liteide.org LiteIDE X32 在界面会话、编译系统、源码编辑、代码分析等方面有了很大改进,从去年开始重写的 MulitFolderModel 也终于完成合并到 LiteIDE 的目录窗口中。 提供了更多的界面主题和编辑器配色,感谢 HopeHook 支持外部图标加载功能 支持会话切换功能(会话保持自己的目录和文件) 编译目录支持自定义 GOPATH 编译目录支持更多的设置 调试插件/Go编辑插件支持编译目录的 BUILDFLAGS -tags 设定 完善 Go 代码导航和重构功能 ...阅读全文

以alpine镜像为基础将go应用部署在docker中

当用docker进行部署go应用时,我们可以选择docker中的golang镜像。 但为了更快的启动速度和更小的磁盘占用,我们推荐以alpine镜像作为基础镜像。 Alpine 操作系统采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。 Alpine Docker 镜像也继承了 Alpine Linux 发行版的这些优势。相比于其他 Docker 镜像,它的容量非常小,仅仅只有 5 MB 左右(对比 Ubuntu 系列镜像接近 200 MB) 有人可能会有疑问:为什么可以采用alpine镜像呢?alpine镜像不是没有go环境吗? 你的疑问是对的。alpine的确没有go环境。但是我们可以...阅读全文

博文 2019-05-13 19:34:52 louhangfei