instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  FROM docker.io/acme/my-base-image:1.0 0.2s
  => [2/3] COPY . /app 0.1s
  => [3/3] RUN chmod +x /app/hello.sh 0.4s
  => exporting to image 0.1s
  => => exporting layers 0.1s
  => => writing image sha256:8bd85c42fa7ff6b33902ada7dcefaaae112bf5673873a089d73583b0074313dd 0.0s
  => => naming to docker.io/acme/my-final-image:1.0 0.0s
  Check out the sizes of the images.
  
  $ docker image ls
  
  REPOSITORY TAG IMAGE ID CREATED SIZE
  acme/my-final-image 1.0 8bd85c42fa7f About a minute ago 7.75MB
  acme/my-base-image 1.0 da3cf8df55ee 2 minutes ago 7.75MB
  Check out the history of each image.
  
  $ docker image history acme/my-base-image:1.0
  
  IMAGE CREATED CREATED BY SIZE COMMENT
  da3cf8df55ee 5 minutes ago RUN /bin/sh -c apk add --no-cache bash # buiâ¦ 2.15MB buildkit.dockerfile.v0
  <missing> 7 weeks ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
  <missing> 7 weeks ago /bin/sh -c #(nop) ADD file:f278386b0cef68136â¦ 5.6MB
  Some steps don't have a size (0B), and are metadata-only changes, which do
  not produce an image layer and don't take up any size, other than the metadata
  itself. The output above shows that this image consists of 2 image layers.
  
  $ docker image history acme/my-final-image:1.0
  
  IMAGE CREATED CREATED BY SIZE COMMENT
  8bd85c42fa7f 3 minutes ago CMD ["/bin/sh" "-c" "/app/hello.sh"] 0B buildkit.dockerfile.v0
  <missing> 3 minutes ago RUN /bin/sh -c chmod +x /app/hello.sh # builâ¦ 39B buildkit.dockerfile.v0
  <missing> 3 minutes ago COPY . /app # buildkit 222B buildkit.dockerfile.v0
  <missing> 4 minutes ago RUN /bin/sh -c apk add --no-cache bash # buiâ¦ 2.15MB buildkit.dockerfile.v0
  <missing> 7 weeks ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
  <missing> 7 weeks ago /bin/sh -c #(nop) ADD file:f278386b0cef68136â¦ 5.6MB
  Notice that all steps of the first image are also included in the final
  image. The final image includes the two layers
  ```