首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >go微应用程序总是得到"/greeter-srv“,没有这样的文件或目录kubernetes

go微应用程序总是得到"/greeter-srv“,没有这样的文件或目录kubernetes
EN

Stack Overflow用户
提问于 2020-07-22 12:20:59
回答 2查看 116关注 0票数 0

我尝试安装go微型应用程序,但总是出现以下错误,

代码语言:javascript
复制
`   Type     Reason     Age                 From               Message
  ----     ------     ----                ----               -------
  Normal   Scheduled  <unknown>           default-scheduler  Successfully assigned default/greeter-7d7c644bdc-dk5q2 to minikube
  Normal   Pulling    9s (x4 over 3m10s)  kubelet, minikube  Pulling image "12345.dkr.ecr.ap-south-1.amazonaws.com/micro:latest"
  Normal   Pulled     9s (x4 over 61s)    kubelet, minikube  Successfully pulled image "460378929709.dkr.ecr.ap-south-1.amazonaws.com/micro:latest"
  Normal   Created    8s (x4 over 59s)    kubelet, minikube  Created container greeter
  Warning  Failed     8s (x4 over 56s)    kubelet, minikube  Error: failed to start container "greeter": Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"/greeter-srv\": stat /greeter-srv: no such file or directory": unknown
`

我已经使用这个doc进行了安装,根据这个文档安装了deppentency etcd和NAT,并且它运行良好。任何人是在kubernetes中创建这个微应用程序的,我怀疑我的Dockerfile本身是否有任何问题或yaml,如果我运行任何错误,您能清除我,我没有从站点获得任何正确的kubernetes安装文档。

我使用下面的yaml文件进行kubernetes部署

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: default
  name: greeter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: greeter-srv
  template:
    metadata:
      labels:
        app: greeter-srv
    spec:
      containers:
        - name: greeter
          command: [
        "/greeter-srv",
      ]
          image: 12345.dkr.ecr.ap-south-1.amazonaws.com/micro:latest
          imagePullPolicy: Always
          ports:
          - containerPort: 8080
            name: greeter-port
          env:
          - name: MICRO_SERVER_ADDRESS
            value: "0.0.0.0:8080"
          - name: MICRO_BROKER
            value: "nats"
          - name: MICRO_BROKER_ADDRESS
            value: "nats-cluster"
          - name: MICRO_REGISTRY
            value: "etcd"
          - name: MICRO_REGISTRY_ADDRESS
            value: "etcd-cluster-client"
      imagePullSecrets:
      - name: ap-south-1-ecr-registry

Dockerfile

代码语言:javascript
复制
  FROM alpine:latest
RUN apk --no-cache add make git go gcc libtool musl-dev
WORKDIR /go/src/
# Configure Go
ENV GOROOT /usr/lib/go
ENV GOPATH /go
ENV PATH /go/bin:$PATH

RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin

COPY . .
COPY greeter-srv /go/src/
RUN make

RUN apk add ca-certificates && \
    rm -rf /var/cache/apk/* /tmp/* && \
    [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf

ENTRYPOINT ["/greeter-srv"]

服务文件名greeter-srv

代码语言:javascript
复制
import (
    "github.com/micro/go-micro/v2"
)
func main() {
    service := micro.NewService(
        micro.Name("greeter")
    )
    service.Init()
    service.Run()
}

我已经使用上述docker文件构建,然后标记并推送到aws ecr,然后我在kubernetes yaml文件中使用了注册表故事。

EN

回答 2

Stack Overflow用户

发布于 2020-07-25 23:05:42

stat /greeter-srv: no such file or directory"这是由于Dockerfile提到的WORKDIR /go/src/ENTRYPOINT ["/greeter-srv"]这是错误的,应使用ENTRYPOINT ["/go/src/greeter-srv"]

票数 1
EN

Stack Overflow用户

发布于 2020-07-25 23:07:31

您的Dockerfile文件导致了问题,请将入口点更改为/go/src/greeter-srv

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63026823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档