instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  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 Go's
  filepath.Match function rules.
  A preprocessing step uses Go's
  filepath.Clean function
  to trim whitespace and remove . and ...
  Lines that are blank after preprocessing are ignored.
  NoteFor historical reasons, the pattern . is ignored.Beyond Go's filepath.Match rules, Docker also supports a special wildcard
  string ** that matches any number of directories (including zero). For
  example, **/*.go excludes all files that end with .go found anywhere in the
  build context.You can use the .dockerignore file to exclude the Dockerfile and
  .dockerignore files. These files are still sent to the builder as they're
  needed for running the build. But you can't copy the files into the image using
  ADD, COPY, or bind mounts.Negating matchesYou can prepend lines with a ! (exclamation mark) to make exceptions to
  exclusions. The following is an example .dockerignore file that uses this
  mechanism:
  
  *.md
  !README.mdAll markdown files right under the context directory except README.md are
  excluded
  ```