在Dockerfile中使用指令ENTRYPOINT来执行项目下entrypoint.shshell文件,如下:

ENTRYPOINT ["./entrypoint.sh"]

时报错提示:

Exec: "./entrypoint.sh": permission denied

很明显问题在于用户没有文件的执行权限。

解决方法有两种:

  1. 赋予shell文件可执行权限

    RUN chmod +x entrypoint.sh
  2. sh作为ENTRYPOINT数组的第一个参数(推荐)

    ENTRYPOINT ["sh", "./entrypoint.sh"]

推荐使用第二种方式,因为不需要再额外去执行chmod

Happy coding!