notes
notes copied to clipboard
docker镜像构建时出现 FrontEnd DockerFIle.v0 类型错误的处理
类型 1:文件名大小写引起
DockerFile - error
dockerFile - error
Dockerfile - work!
类型 2:操作已被忽略的文件引起
COPY ./wp-content/ ./var/www/html/wp-content/
其中 wp-content/ 文件夹已在 .dockerignore 中被标记忽略。
这时,只需要从 .dockerignore 删除掉 wp-content/ 就可以
类型 3:构建命令末尾的 . 被遗忘
# 注意最后有一个点(.),而且必须被空格隔开
docker build -t myapp .
类型 4:语法错误
WORDPRESS_HTTPS_PORT="8443" \
WORDPRESS_HTTP_PORT="8080" \ <-- 此处的 \ 不能被省略
WORDPRESS_SKIP_INSTALL="yes" \ <-- 命令最后的 \ 需要被移除掉
EXPOSE 8080 8443
USER 0
如上所示,对于某些长指令采用折行编写的,需要在行尾加上 \\ 来标记命令并没有结束。
但是往往写着写着就写掉了,或者最后已经结束了还多加一个上去。
MAINTAINER MyApp
FROM centos:latest
...
如上所示,将 MAINTAINER 或者其他某些关键词写到了 FROM 前面。
# 名词拼写错误系列
FROM apline:3.7
FROM alpine:3.7
...
还有太多的语法错误类型,没法一一列举。
类型 5:终极解决方案
最好的办法就是把详细构建过程打印出来,这样出现错误的时候就能准确定位。
DOCKER_BUILDKIT=0 docker build -t myapp .
当然 DOCKER_BUILDKIT=0 会关闭 BuildKit 的使用,从而导致构建效率降低,回到老版本的经典构建模式。
此时的构建信息显示会很详细,有利于准确定位错误问题。
类型 6:今天你和docker只能活一个!

如果类型 5 都不管用,请依次尝试下列步骤
- 重启 restart
- 清除数据 clean / purge data
- 恢复出厂设置 reset to factory defaults
- 重装 uninstall & install again
类型 7:阿祖,收手吧!外面全是警察!
- 把 Dockfile 拷贝到其他电脑进行尝试
- 请其他大神帮忙解决问题
- 大神也不管用,请开始你推卸责任的表演...
- 责任推卸不掉,气死偶了,把电脑砸了!
- 已经没有退路了,赶紧收拾东西,准备跑路...