CI/CD生成失败,带有go-ldflags
Docker图像:CI/CD生成失败,带有go-ldflags,go,Go,Docker图像:golang:1.12.1 本地Go版本:go1.10.4Linux/amd64 我的bash脚本中有这样的命令: GOOS=linux-GOARCH=amd64-go-build-ldflags'-s-w-X main.Version=$(git description--tags)'-o./path/to/binary./main.go&& 现在CI/CD在这个命令上失败了,但一个月前,使用相同的Docker映像一切正常 -ldflags是否已弃用 控制台输出: # co
golang:1.12.1
本地Go版本:go1.10.4Linux/amd64 我的
bash
脚本中有这样的命令:
GOOS=linux-GOARCH=amd64-go-build-ldflags'-s-w-X main.Version=$(git description--tags)'-o./path/to/binary./main.go&&
现在CI/CD在这个命令上失败了,但一个月前,使用相同的Docker映像一切正常
-ldflags
是否已弃用
控制台输出:
# command-line-arguments
usage: link [options] main.o
... //skipped
-extldflags flags
pass flags to external linker
... //skipped
-s disable symbol table
... //skipped
-w disable DWARF generation
关于-ldflags
没有任何内容
我现在应该使用-extldflags
吗
我试过了
GOOS=linux-GOARCH=amd64-go-build-o./path/to/binary-ldflags'-s-w-X main.Version=$(git-descripe--tags)./main.go&&
,没有帮助
编辑1
GOOS=linux-GOARCH=amd64-go-build-ldflags'-s-w'-o./path/to/binary./main.go&&
已成功,但我仍然需要该参数。
甚至
GOOS=linux-GOARCH=amd64-go-build-ldflags'-s-w-X main.Version=123456'-o./path/to/binary./main.go&&
工作
进一步调查git输出。问题在于
ldflags
周围有单引号:
GOOS=linux-GOARCH=amd64-go-build-ldflags'-s-w-X main.Version=$(git description--tags)'-o./path/to/binary./main.go&&
^ ^
| |
我选择了双引号,它成功了:
GOOS=linux-GOARCH=amd64-go-build-ldflags“-s-w-X main.Version=$(git-description--tags)”-o./path/to/binary./main.go&&
^ ^
| |
问题在于ldflags
周围有单引号:
GOOS=linux-GOARCH=amd64-go-build-ldflags'-s-w-X main.Version=$(git description--tags)'-o./path/to/binary./main.go&&
^ ^
| |
我选择了双引号,它成功了:
GOOS=linux-GOARCH=amd64-go-build-ldflags“-s-w-X main.Version=$(git-description--tags)”-o./path/to/binary./main.go&&
^ ^
| |
“现在CI/CD在此命令上失败”您应该提供实际的错误消息。@Volker我已经提供了它。请参阅“控制台输出”。这些都来自CI/CDS,是否仅限于CI?您能否使用相同的docker容器在本地复制相同的问题?没有集装箱?最近对ldflags进行了一些调整(请参阅),但它们肯定仍然应该保持不变work@EliBendersky当然,作为普通终端命令,它甚至失败了。本地的go版本是什么?对于我来说,go build-ldflags'-s-w'
在go1.12 linux/amd64“Now CI/CD在此命令上失败”下肯定能工作(仅在一些随机程序上),你应该提供实际的错误消息。@Volker我已经提供了它。请参阅“控制台输出”。这些都来自CI/CDS,是否仅限于CI?您能否使用相同的docker容器在本地复制相同的问题?没有集装箱?最近对ldflags进行了一些调整(请参阅),但它们肯定仍然应该保持不变work@EliBendersky当然,作为普通终端命令,它甚至失败了。本地的go版本是什么?对我来说,go build-ldflags'-s-w'
在go1.12linux/amd64上肯定能工作(只是在一些随机程序上)