Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
.containerignore(28)	     Container User Manuals	    .containerignore(28)

NAME
     .containerignore(.dockerignore)  -  files to ignore buildah or podman build
     context directory

INTRODUCTION
     Before container engines build an image, they look for a file  named  .con-
     tainerignore  or  .dockerignore  in  the  root context directory. If one of
     these file exists, the CLI modifies the context to exclude files and direc-
     tories that match patterns specified in the file. This avoids  adding  them
     to images using the ADD or COPY instruction.

     The CLI interprets the .containerignore or .dockerignore file as a newline-
     separated	list  of  patterns similar to the file globs of Unix shells. For
     the purposes of matching, the root of the context is considered to be  both
     the  working and the root directory. For example, the patterns /foo/bar and
     foo/bar both exclude a file or directory named bar in the foo  subdirectory
     of  PATH  or  in the root of the git repository located at URL. Neither ex-
     cludes anything else.

     If a line in .containerignore or .dockerignore file starts with # in column
     1, then this line is considered as a comment and is ignored  before  inter-
     preted by the CLI.

EXAMPLES
     Here is an example .containerignore file:

     # comment
     */temp*
     */*/temp*
     temp?

     This file causes the following build behavior: Rule      Behavior

     # comment	    Ignored.
     */temp*   Exclude files and directories whose names start with temp in any immediate subdirectory of the root.
     For example, the plain file /somedir/temporary.txt is excluded, as is the directory /somedir/temp.
     */*/temp*	    Exclude files and directories starting with temp from any subdirectory that is two levels below the
     root. For example, /somedir/subdir/temporary.txt is excluded.
     temp?     Exclude files and directories in the root directory whose names are a one-character extension of temp. For example, /tempa and /tempb are excluded.

     Matching  is done using Goas filepath.Match rules. A preprocessing step re-
     moves leading and trailing whitespace and eliminates . and .. elements  us-
     ing  Goas	filepath.Clean. Lines that are blank after preprocessing are ig-
     nored.

     Beyond Goas filepath.Match rules, Docker also supports a  special	wildcard
     string  ** that matches any number of directories (including zero). For ex-
     ample, */.go will exclude all files that end with .go that are found in all
     directories, including the root of the build context.

     Lines starting with ! (exclamation mark) can be used to make exceptions  to
     exclusions.  The  following  is  an example .containerignore file that uses
     this mechanism:

     *.md
     !README.md

     All markdown files except README.md are excluded from the context.

     The placement of ! exception rules influences the behavior: the  last  line
     of  the  .containerignore that matches a particular file determines whether
     it is included or excluded. Consider the following example:

     *.md
     !README*.md
     README-secret.md

     No markdown files are included in the context  except  README  files  other
     than README-secret.md.

     Now consider this example:

     *.md
     README-secret.md
     !README*.md

     All of the README files are included. The middle line has no effect because
     !README*.md matches README-secret.md and comes last.

     You  can even use the .containerignore file to exclude the Containerfile or
     Dockerfile and .containerignore files.  These files are still sent  to  the
     daemon  because  it needs them to do its job. But the ADD and COPY instruc-
     tions do not copy them to the image.

     Finally, you may want to specify which files to  include  in  the	context,
     rather  than which to exclude. To achieve this, specify * as the first pat-
     tern, followed by one or more ! exception patterns.

SEE ALSO
     buildah-build(1), podman-build(1), docker-build(1)

HISTORY
     *Sep 2021, Compiled by Dan Walsh  (dwalsh	at  redhat  dot  com)  based  on
     docker.com .dockerignore documentation.

				    Sep 2021		    .containerignore(28)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=containerignore&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help