在启动泊坞窗图像时出错standard_init_linux.go:178

我使用Drone构build服务器的Dockerfile构build了Docker镜像。

FROM centurylink/ca-certs WORKDIR /app ADD VERSION . ADD conf/ conf/ ADD resources/ resources/ ADD app app # Expose the application on port 8080 EXPOSE 80 ENTRYPOINT ["./app"] 

但是它会导致standard_init_linux.go:178: exec user process caused "no such file or directory"exceptionstandard_init_linux.go:178: exec user process caused "no such file or directory"

Docker主机是MacOS。 我试图在Amazon EC2 linux实例中执行这个镜像。

以下是无人机构build脚本。 ( .drone.yml

 workspace: base: /go path: src/github.com/me/app pipeline: build: image: instrumentisto/glide commands: - glide install - export GOOS=linux - export GOARCH=amd64 - go build - go test -v when: event: [ push, tag ] publish: image: plugins/ecr repo: 111.dkr.ecr.eu-central-1.amazonaws.com/app registry: 111.dkr.ecr.eu-central-1.amazonaws.com dockerfile: Dockerfile tag: ${DRONE_TAG} default_tags: false default_branch: development secrets: [ ecr_access_key, ecr_secret_key, ecr_region ] when: event: tag status: success ref: refs/tags/v1* 

我遇到过类似的问题,他们build议在脚本中添加一个shebang行。 但在我的情况下,入口点不是一个脚本,而是一个golang可执行文件。

您需要确保您的应用程序编译为静态链接。 如果它查找libc,它将不会存在于你select的容器中。 随着去networking电话和cgo你会经常dynamic链接到像libc创build的东西。 要解决这些问题,请使用CGO_ENABLED=0-tags netgo