gpt4 book ai didi

go - CircleCI 与 Bitbucket Go 构建问题

转载 作者:IT王子 更新时间:2023-10-29 01:06:17 27 4
gpt4 key购买 nike

我正在运行 go build命令 golang:1.11-alpine在两个独立的 CI 工具上。如您所见,命令完全相同,docker 镜像也完全相同。

出于某种原因,当我在 alpine:3.9 上运行编译后的可执行文件时docker 图像,只有 bitbucket 运行。

对于 Circle CI 构建,我收到以下错误:

standard_init_linux.go:207: exec user process caused “exec format error”

我在网上看到这可能是一个架构问题,所以我做了一个 file <file>在终端中,看起来两者都是以相同的方式编译的。这是我收到的两个文件的回复(相同):

cloud: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, stripped

循环CI

docker:
- image: golang:1.11-alpine

steps:
- checkout
- run:
name: Build Go Server
command: |
apk add --no-cache git build-base
export GOPATH="$HOME/go"
export PATH="$PATH:$GOPATH/bin"
go get -u github.com/golang/lint/golint@v0.0.0-20190227174305-8f45f776aaf1
go mod vendor
golint -set_exit_status $(go list ./... | grep -v /vendor/)
go test -short $(go list ./... | grep -v /vendor/)
go build -ldflags="-s -w"

比特桶持续集成

steps:
- step: &step-test-and-build-go
name: Test and Build Go Server
image: golang:1.11-alpine
script:
- apk add --no-cache git build-base
- export GOPATH="$HOME/go"
- export PATH="$PATH:$GOPATH/bin"
- go get -u github.com/golang/lint/golint@v0.0.0-20190227174305-8f45f776aaf1
- go mod vendor
- golint -set_exit_status $(go list ./... | grep -v /vendor/)
- go test -short $(go list ./... | grep -v /vendor/)
- go build -ldflags="-s -w"

圈子CI go env

GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/root/project/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build122963699=/tmp/go-build -gno-record-gcc-switches"

比特桶CI go env

GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/opt/atlassian/pipelines/agent/build/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build179086021=/tmp/go-build -gno-record-gcc-switches"

我已经交叉发布了这个问题 to the CircleCI forum .

最佳答案

issue可能是相关的。

在 alpine 上设置 CGO_ENABLED=0 可能会解决它,除非您的构建需要它。要添加的行可能是这样的:export CGO_ENABLED=0

关于go - CircleCI 与 Bitbucket Go 构建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57477007/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com