当前位置: 首页 > 知识库问答 >
问题:

/bin/sh:/root/start-docker.sh:在docker中执行exec命令时权限被拒绝

薄哲
2023-03-14

我正在生成时将脚本复制到docker容器中,这是Dockerfile的一部分:

ADD soa-room-service/build/libs/soa-room-service-1.0.0-SNAPSHOT.jar /soa-room-service-1.0.0-SNAPSHOT.jar
ADD script/start-docker.sh /root/start-docker.sh

EXPOSE 13003
ENTRYPOINT /root/start-docker.sh

当我使用这个命令运行docker时:

docker run --name soa-room-service -d registry.cn-hangzhou.aliyuncs.com/dabai_app_k8s/dabai_product/soa-room:latest

这是docker日志输出:

$ docker logs e62917af92ccf240c73574e71041229a65db54e29453723ba27d56bcf9856b9a
/bin/sh: /root/start-docker.sh: Permission denied

我正在使用~symbol替换路径。但它仍然给我权限被拒绝的错误。如何使其工作?

共有2个答案

方航
2023-03-14

按如下方式更改入口点脚本:

ENTRYPOINT ["sh","/root/start-docker.sh"]
凌宏大
2023-03-14

内部docker文件系统中的/root/start docker.sh似乎缺少权限。您可能需要修改Dockerfile:

ADD soa-room-service/build/libs/soa-room-service-1.0.0-SNAPSHOT.jar /soa-room-service-1.0.0-SNAPSHOT.jar
ADD script/start-docker.sh /root/start-docker.sh

USER root 
RUN chmod 755 /root/start-docker.sh

EXPOSE 13003
ENTRYPOINT /root/start-docker.sh

当然,如果要在另一个用户下运行/root/start docker.sh,也可以运行run chown youruser:yourgroup/root/start docker.sh

 类似资料:
  • suresh@suresh-laptop:/$usr/local/hadoop-2.6.0/sbin/start-all.sh不推荐使用此脚本。而是使用start-dfs.sh和start-yarn.sh 15/02/01 00:24:52 WARN util.nativeCodeLoader:无法为您的平台加载本机Hadoop库...在适用的情况下使用内置Java类配置不正确:未配置nameno

  • 我尝试过:在administrator中运行Android Studio,在环境变量上添加path,删除构建文件夹和重建项目,但我总是出现这个错误。 我想这就是为什么它没有开始我的活动。 $adb推送C:\users\me\androidStudioProjects\model\app\build\outputs\apk\app-debug.apk/data/local/tmp/my.model

  • 我添加了使用权限,包括WRITE_EXTERNAL_STORAGE,android.permission.相机,READ_EXTERNAL_STORAGEAndroidManifest.xml. 当我在Nexus6(API 24)中运行我的应用程序时,它向我抛出了以下错误: java.io.IOException:权限被拒绝 这是我的代码: 如何在权限相机运行时打开之前使用它?

  • 我试图在PHP中运行exec()函数,但是我得到了一个'Permission Denied'输出。PHP是作为Docker容器安装的。我在Raspberry PI和我的MacBook上都得到了这个。 作为一个测试,我在没有Docker的情况下安装了LAMP,它工作得很好,但在Docker上就不行了。 例如,当我运行 我在浏览器中的PHP脚本中获得以下信息: 而且运行exec()函数还是像shell

  • 我正在尝试在我的笔记本电脑上安装Hadoop。我遵循了以下指南:https://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/ 使用start-all.sh启动hadoop进程会遇到问题 Hadoop权限问题 编辑:在我尝试了所有的选项之后,似乎唯一起作用的是。现在的问题是name

  • 我正在使用Docker Compose运行多个容器,包括一个带有Postgres映像的容器。我正在尝试向该容器添加一个卷,以跨容器构建持久化我的数据。但是,当它尝试在容器中为该卷创建目录时,我收到了一个错误。 我运行: 然后 docker compose up 我收到以下错误: 错误:对于cxbenchmark\u db\u 1,无法启动服务db:oci运行时错误:container\u linu