instruction: Create a Dockerfile for Nginx with production best practices
output: ```dockerfile
  from the Deployment selector -- do not require any changes in the
  Pod template labels. Existing ReplicaSets are not orphaned, and a new ReplicaSet is not created, but note that the
  removed label still exists in any existing Pods and ReplicaSets.Rolling Back a DeploymentSometimes, you may want to rollback a Deployment; for example, when the Deployment is not stable, such as crash looping.
  By default, all of the Deployment's rollout history is kept in the system so that you can rollback anytime you want
  (you can change that by modifying revision history limit).Note:A Deployment's revision is created when a Deployment's rollout is triggered. This means that the
  new revision is created if and only if the Deployment's Pod template (.spec.template) is changed,
  for example if you update the labels or container images of the template. Other updates, such as scaling the Deployment,
  do not create a Deployment revision, so that you can facilitate simultaneous manual- or auto-scaling.
  This means that when you roll back to an earlier revision, only the Deployment's Pod template part is
  rolled back.Suppose that you made a typo while updating the Deployment, by putting the image name as nginx:1.161 instead of nginx:1.16.1:kubectl set image deployment/nginx-deployment nginx=nginx:1.161
  The output is similar to this:deployment.apps/nginx-deployment image updated
  The rollout gets stuck. You can verify it by checking the rollout status:kubectl rollout status deployment/nginx-deployment
  The output is similar to this:Waiting for rollout to finish: 1 out of 3 new replicas have been updated...
  Press Ctrl-C to stop the above rollout status watch. For more information on stuck rollouts,
  read more here.You see that the number of old replicas (adding the replica count
  ```