instruction: Create a Dockerfile for Nginx with production best practices
output: ```dockerfile
  from the old ReplicaSet to the new one at a controlled rate. Each new ReplicaSet updates the revision of the Deployment.
  Rollback to an earlier Deployment revision if the current state of the Deployment is not stable. Each rollback updates the revision of the Deployment.
  Scale up the Deployment to facilitate more load.
  Pause the rollout of a Deployment to apply multiple fixes to its PodTemplateSpec and then resume it to start a new rollout.
  Use the status of the Deployment as an indicator that a rollout has stuck.
  Clean up older ReplicaSets that you don't need anymore.
  
  Creating a Deployment
  The following is an example of a Deployment. It creates a ReplicaSet to bring up three nginx Pods:
  
  controllers/nginx-deployment.yaml
  
  apiVersion: apps/v1
  kind: Deployment
  metadata:
   name: nginx-deployment
   labels:
   app: nginx
  spec:
   replicas: 3
   selector:
   matchLabels:
   app: nginx
   template:
   metadata:
   labels:
   app: nginx
   spec:
   containers:
   - name: nginx
   image: nginx:1.14.2
   ports:
   - containerPort: 80
  
  In this example:
  
  A Deployment named nginx-deployment is created, indicated by the
  .metadata.name field. This name will become the basis for the ReplicaSets
  and Pods which are created later. See Writing a Deployment Spec
  for more details.
  
  The Deployment creates a ReplicaSet that creates three replicated Pods, indicated by the .spec.replicas field.
  
  The .spec.selector field defines how the created ReplicaSet finds which Pods to manage.
  In this case, you select a label that is defined in the Pod template (app: nginx).
  However, more sophisticated selection rules are possible,
  as long as the Pod template itself satisfies the rule.
  
  Note: The .spec.selector.matchLabels field is a map of {key,value} pairs.
  A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions,
  whose key field is "key", the operator is "In", and the values array contains only "value".
  All of the requirements,
  ```