执行docker build 报错文件找不到failed to solve: failed to read dockerfile: no such file or directory

执行docker build 报错文件找不到解决方案

执行命令:

docker build -t nginx:v2 .

报错内容如下:

ERROR: failed to solve: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount1465009252/Dockerfile: no such file or directory

请添加图片描述

排查思路:

1、查看当前dockerfile文件名称是默认名称

在没有指定参数的情况下必须是dockerfile或者是Dockerfile,不允许有后缀

2、确保您从 Dockerfile 的保存位置运行命令。

必须要在当前dockerfile文件目录下执行docker build 命令

解决方案:

1、将dockerfile文件名称改成默认名:dockerfile或者Dockerfile

2、如果是要用自定义的dockerfile文件名称,需要使用 -f 选项指定自定义文件名

docker build -t nginx:v1 -f nginx_dockerfile .

3、必须要在当前dockerfile文件目录下执行docker build 命令,包括需要用到的文件指定正确目录

注意:

dockerfile文件名字可以任意 ,但需要在build时候使用 -f 指定文件名称,如果未使用-f 指定文件名字,会默认去找名字为Dockerfile的文件。推荐使用Dockerfile命名,这样便可以不用指定文件名


扩展: docker build 命令选项介绍

1、-t,–tag: 为构建的镜像指定一个标签。标签可以是名称、版本号或者带有仓库信息的完整标识。

docker build -t nginx:v1 .

2、-f, --file: 指定 Dockerfile 的自定义路径和文件名。默认情况下,docker build 假定 Dockerfile 位于当前工作目录中。通过 -f 选项可以指定其他路径或文件名。

docker build -f /path/to/nginx_dockerfile .

3、–build-arg: 设置构建时的参数,可以在 Dockerfile 中使用。

bashCopy code
docker build --build-arg HTTP_PROXY=http://proxy.example.com:80 .

4、–no-cache: 不使用缓存。默认情况下,Docker 将尝试使用缓存的中间镜像层来加速构建过程。使用 --no-cache 将强制重新生成所有层

bashCopy code
docker build --no-cache .

5、–rm: 构建完成后删除中间容器。默认情况下,Docker 会保留构建过程中生成的中间容器,使用 --rm 可以在构建完成后删除这些容器。

bashCopy code
docker build --rm .

6、–network: 设置构建时的网络模式。默认情况下,使用主机的网络模式。例如:

bashCopy code
docker build --network=host .

7、–pull: 在构建之前尝试拉取最新的基础镜像。例如:

bashCopy code
docker build --pull .

8、–target: 指定构建的目标阶段。Dockerfile 可能包含多个阶段,通过 --target 可以选择性地构建其中的一个阶段。例如:

bashCopy code
docker build --target=mytarget .

以上为docker build构建镜像时常用的选项,可以运行 docker build --help 查看完整的选项列表。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值