Dockerfile 指令 COPY 拷贝文件夹

这篇具有很好参考价值的文章主要介绍了Dockerfile 指令 COPY 拷贝文件夹。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网上查了查资料,这里记录一下。

        今天在编写 dockerfile 时使用 COPY 拷贝文件夹时遇到了意料之外的情况。在此记录一下正确的使用方法。

背景说明

        今天在通过 dockerfile 将文件夹拷贝到镜像的时候发现,是把文件夹下的内容拷贝进去了。

dockerfile 如下:

1
2
3
4
5
FROM node:alpine
WORKDIR /usr/src/app
COPY dist node_modules package.json ./
EXPOSE 3000
CMD ["yarn", "start:prod"]

        我是想把 dist 和 node_modules 两个文件夹都拷贝到镜像中,又不想用多条 COPY 来分别拷贝,那样会多一个 layer。结果发现 dist 和 node_modules 两个文件夹本身没有被拷贝进镜像,而是把文件夹下的内容分别拷贝进的镜像。

经过测试发现:

  • ADD 命令和 COPY 命令在复制文件时行为一致
  • COPY/ADD 命令的源如果是文件夹,复制的是文件夹的内容而不是其本身
  • 使用 * 匹配所有文件,如果遇到文件夹也会保持上述逻辑,即仅复制内容

这个逻辑很诡异,和我们的一般预期不符。

我发文章来源地址https://www.toymoban.com/news/detail-800736.html

到了这里,关于Dockerfile 指令 COPY 拷贝文件夹的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【经典小练习】JavaSE—拷贝文件夹

    🎊专栏【Java小练习】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 在学io流的时候,我发现听的课程中讲的这个小练习很有帮助,就记录了下来,防止忘记哈哈哈 在Java IO操作中,文件和目录的拷贝功能是非常常用

    2024年02月09日
    浏览(30)
  • Linux拷贝服务器文件夹到本地

    方法1: scp命令 scp命令是用于通过 SSH 协议安全地将文件复制到远程系统和从远程系统复制文件到本地的命令。它是  Secure Copy  的缩写,表示安全拷贝。 scp  可以使我们通过网络,把文件从一台电脑拷贝到另一台电脑。 Linux SCP 命令是一种在两个远程节点之间传输文件的便捷

    2024年01月19日
    浏览(37)
  • Android 11.0 mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现

    在11.0的系统rom定制化开发中,usb连接pc端的时候有好几种模式,在做otg连接pc端的时候,改成mtp模式的时候,在pc端可以看到产品设备 的显示的文件夹的内容,对于产品设备里面的文件在pc端禁止做删除重命名拷贝等操作功能的实现 MtpService负责启动MtpServer和加载存储设备的信

    2024年01月17日
    浏览(30)
  • Dockerfile COPY、ADD 作用和区别

    此文章会帮助你理清Dockerfile中非常相似的两个指令(instructions): ADD 和 COPY 。包含为什么Dockerfile中会出现两个功能如此相似的指令,以及日常使用中应该使用哪种更好。 当我们构建Docker image时,经常添加目录/文件至image中。此时便有了两种指令可选择: ADD 和 COPY 。两种指令

    2024年04月29日
    浏览(28)
  • 【linux】tar指令压缩解压缩文件夹、文件命令详解

    压缩当前目录下文件夹/文件test到test.tar.gz: 解压缩当前目录下的file.tar.gz到file: -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输

    2024年02月16日
    浏览(34)
  • 【C#】【System.IO】关于拷贝文件夹以及(Directory和DirectoryInfo、File和FileInfo)的区别

    本次问题是想要拷贝文件夹,但是找了一圈发现只有File有Copy或者FileInfo的CopyTo,并没有Directory的拷贝操作方法。 针对C#中拷贝文件夹的方法就是先生成一个目标文件夹(destinationFolder)再将(soursefolder)中的文件依次拷贝到目标文件夹中,C#并没有提供封装好的方法将文件夹

    2024年02月08日
    浏览(28)
  • Docker技术入门| Part03:Dockerfile详解(Dockerfile概念、Dockerfile 指令、使用Dockerfile构建镜像)

    Docker镜像原理 Docker镜像是由特殊的文件系统叠加而成 最底端是bootfs,并使用宿主机的bootfs 第二层是root文件系统rootfs,称为base image 然后再往上可以叠加其他的镜像文件 统文件系统(UnionFile System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统的视角,这样就隐

    2024年02月09日
    浏览(34)
  • 【零基础入门Docker】Dockerfile中的USER指令以及dockerfile命令详解

    ✍ 面向读者:所有人 ✍ 所属专栏:Docker零基础入门专栏 目录 第 1 步:创建 Dockerfile 第 2 步:构建 Docker 镜像 第 3 步:运行 Docker 容器 第 4 步:验证输出 dockerfile命令详解 最佳实践 默认情况下,Docker 容器以 Root 用户身份运行。如果您在 Docker 容器内大规模部署应用程序,这

    2024年02月05日
    浏览(32)
  • Dockerfile指令详解

    ADD指令用于复制文件,格式为: ADD src... dest ADD [\\\"src\\\",... \\\"dest\\\"] 从src目录复制文件到容器的dest。其中src可以是Dockerfile所在目录的相对路径,也可以是一个URL,还可以是一个压缩包 注意 : ① src必须在构建的上下文内,不能使用例如: ADD ../somethine /something 这样的命令,因为

    2024年01月20日
    浏览(26)
  • Dockerfile 指令的最佳实践

    这些建议旨在帮助您创建一个高效且可维护的Dockerfile。 尽可能使用当前的官方镜像作为镜像的基础。Docker推荐Alpine镜像,因为它受到严格控制,体积小(目前不到6 MB),同时仍然是一个完整的Linux发行版。 or or FROM指令初始化新的构建阶段,并为后续指令设置基本镜像。因此

    2024年02月03日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包