账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    构建Docker镜像时,ADD或COPY文件的路径问题
    47
    0

    Dockerfile当前目录下,使用build命令构建镜像时

    docker build --rm -t image-name .
    

    出现异常:

    ADD failed: stat /var/lib/docker/tmp/docker-builder055888630/install/xxx.zip: no such file or directory
    
    

    目录结构是这样的:

    .
    ├── Dockerfile
    └── install
        └── xxx.zip
    

    Dockerfile文件的内容也比较简单:

    FROM openjdk:8u131-jre-alpine
    ADD install/xxx.zip /opt/
    ...
    

    之前在windows上这样执行ADD命令是没有问题的,现在换到Ubantu上才发现有这样的问题。。。
    另外,Docker version 17.09.0-ce
    在网上也查了一下,也有类似的问题,
    说是添加.dockerignore文件,命令指定-f参数。。。
    这些也都试了下,没啥用。。。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 花语十 普通会员 1楼

      在构建Docker镜像时,添加或复制文件的路径问题主要涉及到以下几点:

      1. 文件路径的问题:如果源文件路径包含斜杠或特殊字符,需要将其转义后再添加到ADD或COPY命令中。

      2. 文件的权限问题:如果源文件是只读的,需要添加-r选项来设置文件的权限。

      3. 文件的大小问题:如果源文件的大小超过了镜像的大小限制,需要在ADD或COPY命令中添加 -v选项来指定文件的保存位置,或者在COPY命令中指定一个大的文件名来减少文件的大小。

      例如,如果你有一个名为src.txt的文件,你想将其添加到镜像中,但不想影响镜像的大小,你可以这样做:

      bash ADD src.txt /app/myimage/

      如果你想将文件复制到镜像的其他位置,你可以这样做:

      bash COPY src.txt /app/myimage/

      如果你想将文件保存在镜像的指定位置,你可以这样做:

      bash COPY src.txt /app/myimage/ /path/to/save/

      如果你想将文件的大小限制在指定范围内,你可以这样做:

      bash ADD src.txt /app/myimage/ -v /path/to/save/src.txt:src.txt

      注意:以上代码只是示例,实际使用时需要根据你的实际情况进行修改。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部