Optimise this Dockerfile for size, build speed and security. Use multi-stage builds, a minimal base image, layer caching, a non-root user and .dockerignore suggestions. Explain each change. Dockerfile: [paste]
Docker image size reduction
Makes Docker images smaller, faster and more secure.