在EKS中创建OCI运行时失败



我试图创建一个到EKS的kubernetes部署,但遇到了这个错误

Containers:
locust-master:
Container ID:   docker://abc3a719222289774988bad3b1b1cfcc04c5b37559038aed49d3d00827fcc94c
Image:          mosesliao/locust:1.3.2
Image ID:       docker-pullable://mosesliao/locust@sha256:74368de2e5cf9e9a679bdb2c371a47cc2aea813e5a697f2282a6b593f179088f
Ports:          5557/TCP, 5558/TCP, 8089/TCP
Host Ports:     0/TCP, 0/TCP, 0/TCP
State:          Waiting
Reason:       CrashLoopBackOff
Last State:     Terminated
Reason:       ContainerCannotRun
Message:      OCI runtime create failed: container_linux.go:349: starting container process caused "exec: "/docker-entrypoint.sh": permission denied": unknown
Exit Code:    126
Started:      Tue, 10 Nov 2020 21:33:39 +0800
Finished:     Tue, 10 Nov 2020 21:33:39 +0800
Ready:          False
Restart Count:  2
Environment:
LOCUST_MODE:  MASTER
LOCUST_OPTS:  --print-stats
Mounts:
/locust from locust-scripts (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-5v8d6 (ro)

可能是什么问题?这是我的蝗虫码头文件

FROM locustio/locust
COPY docker-entrypoint.sh /
USER root
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]

我将尝试列出以下几种可能的解决方案:

  1. docker-entrypoint.sh应与Dockerfile位于同一文件夹中。您需要调整COPY路径,例如:

COPY ./docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"] 
  1. 通过Dockerfile设置的权限可能并不总是正确应用。您应该使主机的docker-entrypoint.sh可执行。要做到这一点,请运行:ls -la path/to/docker-entrypoint.sh,检查可执行文件输出的第一列是否将可执行位设置为:-rwxrwxr-x,如果没有,则运行:chmod +x docker-entrypoint.sh

  2. 尝试使用


ENTRYPOINT ["sh", "/docker-entrypoint.sh"]

而不使用CCD_ 6,因为它不需要可执行的权限。

请记住在进行更改后重新生成并重新运行。