instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from the base image)The HEALTHCHECK instruction tells Docker how to test a container to check that
  it's still working. This can detect cases such as a web server stuck in
  an infinite loop and unable to handle new connections, even though the server
  process is still running.When a container has a healthcheck specified, it has a health status in
  addition to its normal status. This status is initially starting. Whenever a
  health check passes, it becomes healthy (whatever state it was previously in).
  After a certain number of consecutive failures, it becomes unhealthy.The options that can appear before CMD are:--interval=DURATION (default: 30s)--timeout=DURATION (default: 30s)--start-period=DURATION (default: 0s)--start-interval=DURATION (default: 5s)--retries=N (default: 3)The health check will first run interval seconds after the container is
  started, and then again interval seconds after each previous check completes.If a single run of the check takes longer than timeout seconds then the check
  is considered to have failed.It takes retries consecutive failures of the health check for the container
  to be considered unhealthy.start period provides initialization time for containers that need time to bootstrap.
  Probe failure during that period will not be counted towards the maximum number of retries.
  However, if a health check succeeds during the start period, the container is considered
  started and all consecutive failures will be counted towards the maximum number of retries.start interval is the time between health checks during the start period.
  This option requires Docker Engine version 25.0 or later.There can only be one HEALTHCHECK instruction in a Dockerfile. If you list
  more than one then only the last HEALTHCHECK will take effect.The command after the CMD keyword can be either a shell command (e.g. HEALTHCHECK CMD /bin/check-running) or an exec array (as with other Dockerfile commands;
  see e.g. ENTRYPOINT for details).The command's exit status indicates the health status of the container.
  The possible values are:0: success - the container is healthy and ready for use1: unhealthy - the container isn't working correctly2: reserved - don't use this exit codeFor example, to check every five minutes or so that a web-server is able to
  serve the site's main page within three seconds:
  
  HEALTHCHECK --interval=5m --timeout=3s \
   CMD curl -f http://localhost/ || exit 1To help debug failing probes, any output text (UTF-8 encoded) that the command writes
  on stdout or stderr will be stored in the health status and can be queried with
  docker inspect. Such output should be kept short (only the first 4096 bytes
  are stored currently).When the health status of a container changes, a health_status event is
  generated with the new status.SHELL
  
  SHELL ["executable", "parameters"]The SHELL instruction allows the default shell used for the shell form of
  commands to be overridden. The default shell on Linux is ["/bin/sh", "-c"], and on
  Windows is ["cmd", "/S", "/C"]. The SHELL instruction must be written in JSON
  form in a Dockerfile.The SHELL instruction is particularly useful on Windows where there are
  two commonly used and quite different native shells: cmd and powershell, as
  well as alternate shells available including sh.The SHELL instruction can appear multiple times. Each SHELL instruction overrides
  all previous SHELL instructions, and affects all subsequent instructions. For example:
  ```