如何解决启动容器进程导致 \"exec: \\\\\"/app/start_combined_collector.sh\\\\": permission denied\": unknown'\n\nERROR:
错误信息是
Cannot start service nonJira_Processor: b'OCI runtime create Failed: container_linux.go:345: starting container process caused \"exec: \\\\\"/app/start_combined_collector.sh\\\\\": permission denied\": unkNown'\n\nERROR: for nonJira_Processor
这是我的 dockerfile
ADD processors/nonjira_combined_processor_docker/start_combined_collector.sh start_combined_collector.sh
RUN chmod +x /app/start_combined_collector.sh
RUN ls -lrt
ENTRYPOINT ["/app/start_combined_collector.sh"]
CMD ["inputs"]
在 start_combined_collector.sh 中
#!/bin/sh
java -jar $1.jar --spring.config.location=/app/properties/$1.properties
我已经更改了 RUN ["chmod","+x","/app/start_combined_collector.sh"] 但知道使用我的 start_combined_collector.sh 有什么问题,因为我试图给 chmod +x 和 777 权限,但是仍然说权限被拒绝
提前致谢
解决方法
感谢大家的回复,我解决了问题,因为我正在将 shell 脚本复制到挂载到卷的容器的应用程序目录中,我发现 RUN 命令如果挂载到卷将不会执行任何操作,所以我将 shell 脚本复制到另一个名为 script 的目录并运行它 在 dockerfile 之前
VOL /app
COPY start_combined_collector.sh **/app**
RUN chmod +x start_combined_collector.sh
之后
VOL /app
COPY start_combined_collector.sh **/script**
RUN chmod +x start_combined_collector.sh
因为这次我将 start_combined_collector.sh 复制到未安装到 VOL 的脚本目录中,它可以工作
,消除 shell 脚本步骤并仅在 Dockerfile
中尝试此操作:
ENTRYPOINT [java]
CMD ["-jar","inputs.jar","--spring.config.location=/app/properties/inputs.properties"]
如果它有效,这将确认问题肯定与 shell 脚本有关。然后将 Dockerfile
更新为此并重试:
COPY ./processors/nonjira_combined_processor_docker/start_combined_collector.sh /app/
ENTRYPOINT ["/bin/bash","/app/start_combined_collector.sh"]
CMD ["inputs"]
如果错误仍然存在,则共享整个 Dockerfile
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。