用Dockerfile 启动容器时出现的问题--permission denied
首先确定是否存在对该文件的读写权限,权限开通需要在Dockerfile中用以下命令:
具体来说 我想要通过容器workdir 下的scripts/start.sh脚本启动容器,那么在构建容器的文件夹下首先需要存在 scripts这个文件夹,并且scripts文件夹下还要存在start.sh这个文件。 然后在Dockerfile中填写
COPY --chmod=755 scripts/* ./ 表示将scripts中的文件拷贝到当前位置,然后对 容器中的文件和文件夹赋予相应权限。
RUN chmod +x /app/scripts/start.sh
RUN chmod +x /app/scripts/*
CMD["scripts/start.sh"]
之后通过Dockerfile 启动容器就不会报 cripts/start.sh permission denied 错误了
这里需要强调一点,
如果你通过 -v 将scripts/ 映射到容器中了,那么需要保证 你Dockerfile中COPY (COPY --chmod=755 scripts/* ./)到容器的文件和你映射的文件必须是同一个文件 如果不是同一个文件,你最好先对文件进行权限赋予处理 就是对本地的文件执行chmod +x /app/scripts/start.sh 直接copy的文件会导致 copy的文件的权限下降。否则依旧会报 permission denied错误。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)