创建docker image时可能会用到的.dockerignore

来源:互联网 发布:数据预测方法 编辑:程序博客网 时间:2024/05/16 05:55

一直用docker build命名创建docker镜像时都很顺利,没有遇到什么坑。但是今天试图创建一个mysql docker镜像时docker build命令报告如下错误:

Error checking context: 'no permission to read from '/home/db-test/db-data/ca-key.pem''.

我的第一反应是我的Dockerfile中应该没有包含文件ca-key.pem,难到手抖不小心输入在Dockerfile中包含了ca-key.pem文件?并且这个文件我不知道从哪儿来的。在打开文件Dockerfile看了又看,Dockerfile确实没有包含ca-key.pem文件,为何docker build命令报这样的错误。

用ls -l命令看了一下:

...

drwxrwxr-x 6        999 docker          4096 Mar 20 06:08 db-data

....


db-data文件目录的所有者是docker而不是db-test用户。原来昨天我运行过mysql并且报数据存放在目录/home/db-test/db-data中了,导致db-data目录的所有者是docker而不是db-test用户。

搞清楚了db-data的来源,我依然没有弄清楚为啥docker build命令会报错:Error checking context: 'no permission to read from '/home/db-test/db-data/ca-key.pem''.

没有办法,google一把,原来遇到这个问题的不只我一个,很多人都遇到过,并且向docker项目报了issue。大家一片抱怨声,说为什么明明没用的的文件,docker为何要检查呢?最后没有办法,docker给出了一个解决方案:


将不检查的目录,文件写到同Dockerfile目录下的.dockerignore文件中,docker build命令将不再检查在.dockerignore文件中的目录,文件。


如法炮制,在.dockerignore文件中写入一行:


db-test


然后再用docker build命令创建镜像,一切顺利!


0 0
原创粉丝点击