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

问题描述 投票:0回答:2

我在构建时将脚本复制到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

我正在使用〜符号替换路径。但是它仍然会给我权限被拒绝的错误。如何使其起作用?

docker
2个回答
1
投票

[内部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


0
投票

像这样更改ENTRYPOINT脚本:

ENTRYPOINT ["sh","/root/start-docker.sh"]
© www.soinside.com 2019 - 2024. All rights reserved.