instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from the tarball context. You can use the
  --file flag to specify the name and location of the Dockerfile relative to
  the root of the tarball. The following command builds using test.Dockerfile
  in the tarball:
  
  $ docker build --file test.Dockerfile - < foo.tar.gz
  Remote contextYou can specify the address of a remote Git repository, tarball, or plain-text
  file as your build context.For Git repositories, the builder automatically clones the repository. See
  Git repositories.For tarballs, the builder downloads and extracts the contents of the tarball.
  See Tarballs.If the remote tarball is a text file, the builder receives no filesystem
  context, and instead assumes that the remote
  file is a Dockerfile. See Empty build context.Git repositoriesWhen you pass a URL pointing to the location of a Git repository as an argument
  to docker build, the builder uses the repository as the build context.The builder performs a shallow clone of the repository, downloading only
  the HEAD commit, not the entire history.The builder recursively clones the repository and any submodules it contains.
  
  $ docker build https://github.com/user/myrepo.git
  By default, the builder clones the latest commit on the default branch of the
  repository that you specify.URL fragmentsYou can append URL fragments to the Git repository address to make the builder
  clone a specific branch, tag, and subdirectory of a repository.The format of the URL fragment is #ref:dir, where:ref is the name of the branch, tag, or commit hashdir is a subdirectory inside the repositoryFor example, the following command uses the container branch,
  and the docker subdirectory in that branch, as the build context:
  
  $ docker build https://github.com/user/myrepo.git#container:docker
  The following table represents all the valid suffixes with their build
  contexts:Build Syntax SuffixCommit UsedBuild Context Usedmyrepo.gitrefs/heads/<default branch>/myrepo.git#mytagrefs/tags/mytag/myrepo.git#mybranchrefs/heads/mybranch/myrepo.git#pull/42/headrefs/pull/42/head/myrepo.git#:myfolderrefs/heads/<default branch>/myfoldermyrepo.git#master:myfolderrefs/heads/master/myfoldermyrepo.git#mytag:myfolderrefs/tags/mytag/myfoldermyrepo.git#mybranch:myfolderrefs/heads/mybranch/myfolderWhen you use a commit hash as the ref in the URL fragment, use the full,
  40-character string SHA-1 hash of the commit. A short hash, for example a hash
  truncated to 7 characters, is not supported.
  
  # â The following works:
  docker build github.com/docker/buildx#d4f088e689b41353d74f1a0bfcd6d7c0b213aed2
  # â The following doesn't work because the commit hash is truncated:
  docker build github.com/docker/buildx#d4f088eKeep .git directoryBy default, BuildKit doesn't keep the .git directory when using Git contexts.
  You can configure BuildKit to keep the directory by setting the
  BUILDKIT_CONTEXT_KEEP_GIT_DIR build argument.
  This can be useful to if you want to retrieve Git information during your build:
  
  # syntax=docker/dockerfile:1
  ```