standard_init_linux.go:178:exec用户进程导致“exec格式错误”kubernetes

时间:2018-06-10 16:29:30

标签: docker go kubernetes

我知道很多人都遇到过这个问题,但是没有一个给出的答案解决了我的问题。

工作流

  • 我在kubernetes集群(谷歌云)中运行所有码头工人。
  • 当我在github上的master分支中提交时,我已经设置了compilation_trigger来自动构建我的dockerfile。
  • 然后我用kubectl set image deployment/MYPROJECT MYPROJECT=eu.gcr.io/foo/MYPROJECT:$TRAVIS_COMMIT
  • 更新我的kubernetes部署

怎么了?

我的广告连播保留在crashloop back-off和我阅读的日志中:standard_init_linux.go:178: exec user process caused "exec format error"

一点上下文

我的工作流程一直工作,直到2018年6月开始,我不明白什么是错的,所以我在互联网上搜索,修改了我的dockerfile,更新了我的依赖项,更改了dockerfile基本图像版本等......没有什么可行的

Dockerfile

FROM golang:1.10-alpine3.7 AS builder
ADD . /go/src/github.com/foo/MYPROJECT
WORKDIR /go/src/github.com/foo/MYPROJECT/api
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -a -installsuffix cgo -o /go/bin/api

FROM alpine:3.7
RUN apk --no-cache add ca-certificates
COPY --from=builder /go/bin/api /go/bin/api
COPY --from=builder /go/src/github.com/foo/MYPROJECT/api/sql /go/migrations/sql
COPY --from=builder /go/src/github.com/foo/MYPROJECT/api/.docs/swagger.yml /static/swagger.yml
RUN chmod +x /go/bin/api
ENTRYPOINT ["/go/bin/api"]

[编辑:6月12日]

我注意到,当问题开始时,码头图片大小从6.3 Mo变为2.3 Mo。我怀疑阿尔卑斯山的更新,我继续调查。

2 个答案:

答案 0 :(得分:0)

好的,我发现了这个问题。我在这里发布,万一有人像我一样愚蠢。 我在我的github存储库中进行了更改,将每个微服务的1个项目/微服务转换为1个monorepo。 在重构期间,我的main微服务中没有包api,并且go build DID没有失败,但在输出目的地写了90 Ko文件。

确保拥有主包

我感到非常愚蠢,但嘿,它发生在每个人身上。

感谢评论员,你是对的

答案 1 :(得分:0)

尽管不能解决此问题,但另一个原因可能是您的命令是没有shebang的脚本。