Rau*_*han 3 permission-denied docker kubernetes dockerfile
我有一个多阶段 dockerfile,我正在 k8s 中部署它,脚本为ENTRYPOINT ["./entrypoint.sh"].
尽管 helm 和 env 是 Azure,但部署已完成。创建容器时出错“./entrypoint.sh”:权限被拒绝:未知
Warning Failed 14s (x3 over 31s) kubelet Error: failed to create containerd task: OCI runtime create failed: container_linux.go:380: starting container process caused:
exec: "./entrypoint.sh": permission denied: unknown
Warning BackOff 1s (x4 over 30s) kubelet Back-off restarting failed container
Run Code Online (Sandbox Code Playgroud)
我已同意chmod +x使其可执行并chmod 755获得许可。
Dockerfile
##############
## Build #
##############
FROM repo.azurecr.io/maven:3.8.1-jdk-11 AS BUILD
ARG WORKDIR=/opt/work
COPY . $WORKDIR/
WORKDIR ${WORKDIR}
COPY ./settings.xml /root/.m2/settings.xml
RUN --mount=type=cache,target=/root/.m2/repository \
mvn clean package -pl app -am
RUN rm /root/.m2/settings.xml
RUN rm ./settings.xml
#################
### Runtime #
#################
FROM repo.azurecr.io/openjdk:11-jre-slim as RUNTIME
RUN mkdir /opt/app \
&& useradd -ms /bin/bash javauser \
&& chown -R javauser:javauser /opt/app \
&& apt-get update \
&& apt-get install curl -y \
&& rm -rf /var/lib/apt/lists/*
COPY --from=BUILD /opt/work/app/target/*.jar /opt/app/service.jar
COPY --from=BUILD /opt/work/entrypoint.sh /opt/app/entrypoint.sh
RUN chmod +x /opt/app/entrypoint.sh
RUN chmod 755 /opt/app/entrypoint.sh
WORKDIR /opt/app
USER javauser
ENTRYPOINT ["./entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
PS:请不要重复/sf/answers/3244736491/,因为我已经添加了它RUN chmod +x entrypoint.sh,但它没有解决问题。
在入口点中使用bash(或者您首选的 shell,如果没有的话):bash
ENTRYPOINT [ "bash", "-c", "./entrypoint.sh" ]
Run Code Online (Sandbox Code Playgroud)
即使您尚未将脚本设置为可执行文件(我看到您已将其设置为可执行文件),这也会运行入口点脚本
您也可以将其类似地用于其他脚本,例如 Python:
ENTRYPOINT [ "python", "./entrypoint.py" ]
Run Code Online (Sandbox Code Playgroud)
您还可以尝试使用完整的可执行路径调用脚本:
ENTRYPOINT [ "/opt/app/entrypoint.sh" ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11021 次 |
| 最近记录: |