CI/CD生成失败,带有go-ldflags

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

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
是否已弃用

控制台输出:

# 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上肯定能工作(只是在一些随机程序上)