Docker构建MariaDB镜像时COPY指令报错的原因是什么?
COPY指令报错的原因
报错的核心原因是文件名拼写不匹配:
- 当前目录下的SQL脚本文件名为
db-load-script.sql(单数形式,末尾无s) - 但Dockerfile的COPY指令中写的是
db-load-scripts.sql(复数形式,末尾多了一个s)
Docker在构建时会在指定的构建上下文(当前.目录)中查找目标文件,由于找不到db-load-scripts.sql这个文件,因此抛出"not found"错误。
解决方法
二选一即可:
- 修改Dockerfile中的COPY指令,使用正确的文件名:
COPY db-load-script.sql /docker-entrypoint-initdb.d/ - 将本地的SQL脚本文件重命名为
db-load-scripts.sql,与Dockerfile中的路径保持一致。
额外提示:RUN apt-get update在基于MariaDB官方镜像的Dockerfile中属于冗余操作,官方镜像已维护好基础包源,除非后续需要安装额外软件包,否则可以删除该指令。
内容的提问来源于stack exchange,提问作者Brian G
相关产品推荐
相关产品推荐

