【docker】 /bin/sh: ./mvnw: No such file or directory解决方案.dockerignore被忽略

报错如下:解决方案很简单,但是容易让大家忽视的问题。
在这里插入图片描述

 => CACHED [stage-1 2/4] WORKDIR /work/                                                                                                                                                                                                                                                                            0.0s
 => CACHED [stage-1 3/4] RUN chown 1001 /work     && chmod "g+rwX" /work     && chown 1001:root /work                                                                                                                                                                                                              0.0s
 => CACHED [build 2/4] WORKDIR /build/                                                                                                                                                                                                                                                                             0.0s
 => CACHED [build 3/4] COPY . .                                                                                                                                                                                                                                                                                    0.0s
 => ERROR [build 4/4] RUN ./mvnw  -DskipTests=true clean package -Dnative -U                                                                                                                                                                                                                                       0.2s
------
 > [build 4/4] RUN ./mvnw  -DskipTests=true clean package -Dnative -U:
0.164 /bin/sh: ./mvnw: No such file or directory
------
Dockerfile:44
--------------------
  42 |     COPY . .
  43 |     
  44 | >>> RUN ./mvnw  -DskipTests=true clean package -Dnative -U
  45 |     
  46 |     
--------------------

文章主题已经点明解决方案:.dockerignore文件。大家都使用过.gitignore,原理是一样的。
我们看一下项目生成时,默认dockerignore内容是什么

*
!target/*-runner
!target/*-runner.jar
!target/lib/*
!target/quarkus-app/*

重点就是这个*,默认将所有文件忽略啦,所以dockerfile运行命令时,无法使用./mvnw命令。之前的文章也提过,quarkus原生包镜像需要依赖二进制文件,故target目录下文件需要排除。下面简单介绍一下:
.dockerignore文件是用来指定在构建Docker镜像时应该忽略的文件和目录的配置文件。它的应用场景和原理如下:

  • 应用场景
    避免将不必要的文件和目录复制到Docker镜像中,减小镜像大小。
    提高构建速度,因为Docker在构建镜像时会忽略.dockerignore中指定的文件和目录,避免不必要的复制操作。
  • 原理
    在构建Docker镜像时,Docker会读取.dockerignore文件中列出的文件和目录,并在构建镜像时排除这些文件和目录。
    .dockerignore文件的工作原理类似于.gitignore文件,通过指定需要忽略的文件和目录,可以在构建镜像时过滤掉这些文件,只复制必要的文件到镜像中。Docker会按照.dockerignore文件中的规则来判断哪些文件和目录应该被忽略,然后在构建镜像时将其排除在外。

相关推荐

  1. git忽略文件不生效解决方案

    2024-06-06 07:06:05       15 阅读
  2. Linux-SSH攻击-解决方案

    2024-06-06 07:06:05       34 阅读

最近更新

  1. 【软件工程中的演化模型及其优缺点】

    2024-06-06 07:06:05       0 阅读
  2. Linux 例题及详解

    2024-06-06 07:06:05       0 阅读
  3. 金蝶云苍穹-插件开发(四)GPT开发相关插件

    2024-06-06 07:06:05       1 阅读
  4. Windows图形界面(GUI)-SDK-C/C++ - 应用程序结构

    2024-06-06 07:06:05       1 阅读
  5. MySQL 速记SQL语句(SQL语句学习)

    2024-06-06 07:06:05       1 阅读
  6. xformers版本与其依赖pytorch版本的对应关系

    2024-06-06 07:06:05       1 阅读

热门阅读

  1. 科技与环保

    2024-06-06 07:06:05       7 阅读
  2. 服务器端Openresty的Lua 脚本动态生成 HTML 页面

    2024-06-06 07:06:05       9 阅读
  3. Debian常用命令详解

    2024-06-06 07:06:05       6 阅读
  4. NTP网络时间服务器_安徽京准电钟

    2024-06-06 07:06:05       9 阅读
  5. Http和Socks的区别?

    2024-06-06 07:06:05       7 阅读
  6. 机器人抓取检测(Robot Grasping Detection)

    2024-06-06 07:06:05       7 阅读
  7. Python库之pandas的简介、安装、使用方法详细攻略

    2024-06-06 07:06:05       6 阅读
  8. TCP/UDP的区别

    2024-06-06 07:06:05       9 阅读
  9. 运维开发详解

    2024-06-06 07:06:05       11 阅读
  10. 牛客周赛45

    2024-06-06 07:06:05       9 阅读