Docker创建数据库并运行EF Core迁移:entrypoint.sh文件找不到报错
解决Docker构建时chmod找不到entrypoint.sh的问题
排查及修复步骤
1. 核对文件路径与大小写
Linux镜像严格区分大小写,先确认Dockerfile里写的./entrypoint.sh和本地实际文件名完全一致,包括大小写。同时检查文件是否和Dockerfile在同一目录下,若文件在子目录,要写完整相对路径(比如./scripts/entrypoint.sh)。
2. 检查.dockerignore规则
查看项目根目录的.dockerignore文件,确认有没有把entrypoint.sh或其所在目录排除在外(比如*.sh、scripts/这类规则)。如果有,添加例外规则:!entrypoint.sh(或对应子目录路径的例外)。
3. 确认Docker构建上下文
执行docker build时,如果指定的上下文不是Dockerfile所在目录(比如docker build ./src但entrypoint.sh在项目根目录),构建上下文里就找不到这个文件。要么把entrypoint.sh移到构建上下文目录,要么调整Dockerfile里的路径,或者执行构建时指定正确的上下文(比如项目根目录)。
4. 验证文件实际存在
手动检查本地文件系统,确认entrypoint.sh确实存在,文件名没有拼写错误(比如少字母、多空格)。
参考正确的Dockerfile片段
如果entrypoint.sh和Dockerfile同目录,Dockerfile里的相关代码应该是这样:
COPY entrypoint.sh . RUN chmod +x ./entrypoint.sh ENTRYPOINT ["./entrypoint.sh"]
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

