我试图为Go Application构建这个Dockerfile,然后将其部署到GKE,但我在创建pod时看到了这个错误.在描述这个pod时,我观察到了同样的错误:

错误:无法创建containerd任务:无法创建shim任务: OCI运行时创建失败:runc创建失败:无法启动 容器进程:exec:"./ bin ":stat./ bin:没有这样的文件或 目录:未知

此映像使用此命令成功地在本地运行. docker run -it --rm bytecode01/domainalert:v2

#Dockerfile
FROM golang:alpine as builder
WORKDIR /data

COPY go.mod go.mod
RUN go mod download

# Copy the go source
COPY . .

# Build
RUN go build -a -o bin main.go

FROM alpine:latest

WORKDIR /data
COPY --from=builder /data/bin .
RUN chmod +x bin
CMD ["./bin"]

GKE PVC successfully mounted

#pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: de
  labels:
    name: de
spec:
  containers:
    - name: de-pod
      image: bytecode01/domainalert:v2
      imagePullPolicy: Always
      volumeMounts:
        - mountPath: /data
          name: app-volume
  volumes:
    - name: app-volume
      persistentVolumeClaim:
        claimName: pvc-dynamic
#pvc-dynamic.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-dynamic
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Mi
  storageClassName: standard

Help to get my issue solved.

推荐答案

Issue Solve

Go应用程序的build命令有问题.我现在正在使用这个Dockerfile.我给命令加了GOARCH=amd64

FROM golang:latest AS build-stage

WORKDIR /data
COPY go.mod go.sum ./
RUN go mod download

COPY *.go ./

RUN CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -o /domaintest

FROM alpine:latest AS build-release-stage

WORKDIR /data

COPY --from=build-stage /domaintest /bin

ENTRYPOINT ["/bin/domaintest"]

Go相关问答推荐

更改位置级别和时间戳零点Golang

在Golang中Mergesort的递归/并行实现中出现死锁

在整个SQL事务中将使用上下文作为默认设置吗?

Go:拆分一个由逗号分隔的键/值对字符串,并在给定的键/价值对中嵌入可能的逗号

未实现的 desc = 未知服务 pb.AuthService 我的简单身份验证服务器上出现错误

Go安装成功但没有输出简单的Hello World

如何从 Go Lambda 函数返回 HTML?

Gorm delete with clauses sqlmock 测试

设置指向空接口的指针

emersion/go-imap - imap.FetchRFC822:无效内存地址或零指针取消引用

如何在 golang revel 中获取动态应用程序配置

GqlGen - 在字段解析器中访问查询输入参数

函数超时和 goroutine 泄漏

切片到数组指针的转换

从golang中的url加载图像

Go 使用 struct 作为接口而不实现所有方法

Go lang - 惯用的默认后备

如何在眼镜蛇(golang)中将标志作为参数传递?

处理程序中的无限循环

如何动态解析 Go Fiber 中的请求正文?