instruction: Create a Dockerfile for Nginx with production best practices
output: ```dockerfile
  from type
   maxSurge : 1
   maxUnavailable: 1
   template:
   metadata:
   labels:
   app: nginx
   spec:
   containers:
   - name: nginx
   image: nginx:1.14.2
   ports:
   - containerPort: 80
  
  # result after merge - ERROR!
  spec:
   strategy:
   type: Recreate # updated value: incompatible with rollingUpdate
   rollingUpdate: # defaulted value: incompatible with "type: Recreate"
   maxSurge : 1
   maxUnavailable: 1
   template:
   metadata:
   labels:
   app: nginx
   spec:
   containers:
   - name: nginx
   image: nginx:1.14.2
   ports:
   - containerPort: 80
  Explanation:
  
  The user creates a Deployment without defining strategy.type.
  The server defaults strategy.type to RollingUpdate and defaults the
  strategy.rollingUpdate values.
  The user changes strategy.type to Recreate. The strategy.rollingUpdate
  values remain at their defaulted values, though the server expects them to be cleared.
  If the strategy.rollingUpdate values had been defined initially in the configuration file,
  it would have been more clear that they needed to be deleted.
  Apply fails because strategy.rollingUpdate is not cleared. The strategy.rollingupdate
  field cannot be defined with a strategy.type of Recreate.
  
  Recommendation: These fields should be explicitly defined in the object configuration file:
  
  Selectors and PodTemplate labels on workloads, such as Deployment, StatefulSet, Job, DaemonSet,
  ReplicaSet, and ReplicationController
  Deployment rollout strategy
  
  How to clear server-defaulted fields or fields set by other writers
  Fields that do not appear in the configuration file can be cleared by
  setting their values to  and then applying the configuration file.
  For fields defaulted by the server, this triggers re-defaulting
  the values.
  How to change ownership of a field between the configuration file and direct imperative writers
  These are the only methods you should use to change an individual object field:
  
  Use kubectl apply.
  Write directly to the live configuration without modifying the configuration file:
  for example, use kubectl scale.
  
  <h3 id="changing-the-owner-
  ```