一尘不染

.dockerignore中的异常

docker

如何.dockerignore处理异常?

例如,我想忽略src/目录中除之外的所有内容src/web/public

我试过了…

.git
src
!src/web/public

似乎不起作用。

docker build .显示Sending build context to Docker daemon 20.63 MB任何一种方式。


阅读 248

收藏
2020-06-17

共1个答案

一尘不染

似乎没有.dockerignore处理异常。如果存在众所周知的语法,则可以提出更改并提出请求

commands.go的标记1.3中,我们看到了以下内容:

    ignore, err := ioutil.ReadFile(path.Join(root, ".dockerignore"))
    // ...
    options := &archive.TarOptions{
        Compression: archive.Uncompressed,
        Excludes:    excludes,
    }
    context, err = archive.TarWithOptions(root, options)

并在archive.go中

    for _, include := range options.Includes {

            // ...
            skip, err := fileutils.Matches(relFilePath, options.Excludes)
            if err != nil {
                log.Debugf("Error matching %s", relFilePath, err)
                return err
            }

            if skip {
                if f.IsDir() {
                    return filepath.SkipDir
                }
                return nil
            }
            // ...
    }
2020-06-17