我试图创建一个到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"]
我将尝试列出以下几种可能的解决方案:
docker-entrypoint.sh
应与Dockerfile位于同一文件夹中。您需要调整COPY路径,例如:
COPY ./docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
通过Dockerfile设置的权限可能并不总是正确应用。您应该使主机的
docker-entrypoint.sh
可执行。要做到这一点,请运行:ls -la path/to/docker-entrypoint.sh
,检查可执行文件输出的第一列是否将可执行位设置为:-rwxrwxr-x
,如果没有,则运行:chmod +x docker-entrypoint.sh
。尝试使用
ENTRYPOINT ["sh", "/docker-entrypoint.sh"]
而不使用CCD_ 6,因为它不需要可执行的权限。
请记住在进行更改后重新生成并重新运行。