我尝试安装go微型应用程序,但总是出现以下错误,
` 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部署
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-registryDockerfile
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
import (
"github.com/micro/go-micro/v2"
)
func main() {
service := micro.NewService(
micro.Name("greeter")
)
service.Init()
service.Run()
}我已经使用上述docker文件构建,然后标记并推送到aws ecr,然后我在kubernetes yaml文件中使用了注册表故事。
发布于 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"]
发布于 2020-07-25 23:07:31
您的Dockerfile文件导致了问题,请将入口点更改为/go/src/greeter-srv
https://stackoverflow.com/questions/63026823
复制相似问题