instruction: Create a Dockerfile for Nginx with production best practices
output: ```dockerfile
  From SubobjectPath Type Reason Message
   --------- -------- ----- ---- ------------- -------- ------ -------
   1m 1m 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2035384211 to 3
   22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 1
   22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 2
   22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 2
   21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 1
   21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 3
   13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 0
   13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 1
  Untuk memperbaikinya, kamu harus kembali ke revisi Deployment yang sebelumnya stabil.Mengecek Riwayat Rilis DeploymentIkuti langkah-langkah berikut untuk mengecek riwayat rilis:Pertama, cek revisi Deployment sekarang:kubectl rollout history deployment.v1.apps/nginx-deployment
  Keluaran akan tampil seperti berikut:deployments "nginx-deployment"
  REVISION CHANGE-CAUSE
  1 kubectl apply --filename=https://k8s.io/examples/controllers/nginx-deployment.yaml --record=true
  2 kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
  3 kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.91 --record=true
  CHANGE-CAUSE disalin dari anotasi Deployment kubernetes.io/change-cause ke revisi saat pembuatan. Kamu dapat menentukan pesan CHANGE-CAUSE dengan:Menambahkan anotasi pada Deployment dengan kubectl annotate deployment.v1.apps/nginx-deployment kubernetes.io/change-cause="image updated to 1.9.1"Menambahkan argumen --record untuk menyimpan perintah kubectl yang menyebabkan perubahan sumber daya.Mengganti manifest sumber daya secara manual.Untuk melihat detil tiap revisi, jalankan:kubectl rollout history deployment.v1.apps/nginx-deployment --revision=2
  Keluaran akan tampil seperti berikut:deployments "nginx-deployment" revision 2
   Labels: app=nginx
   pod-template-hash=1159050644
   Annotations: kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
   Containers:
   nginx:
   Image: nginx:1.9.1
   Port: 80/TCP
   QoS Tier:
   cpu: BestEffort
   memory: BestEffort
   Environment Variables: <none>
   No volumes.
  Kembali ke Revisi SebelumnyaIkuti langkah-langkah berikut untuk membalikkan Deployment dari versi sekarang ke versi sebelumnya, yaitu versi 2.Sekarang kamu telah menentukan akan mengembalikan rilis sekarang ke sebelumnya:kubectl rollout undo deployment.v1.apps/nginx-deployment
  Keluaran akan tampil seperti berikut:deployment.apps/nginx-deployment
  Gantinya, kamu dapat kambali ke revisi tertentu dengan menambahkan argumen --to-revision:kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2
  Keluaran akan tampil seperti berikut:deployment.apps/nginx-deployment
  Untuk detil lebih lanjut perintah terkait rilis, baca rilis kubectl.Deployment sekarang dikembalikan ke revisi stabil sebelumnya. Seperti terlihat, ada event DeploymentRollback
  yang dibentuk oleh kontroler Deployment untuk pembalikan ke revisi 2.Cek apakah rilis telah sukses dan Deployment berjalan seharusnya, jalankan:kubectl get deployment nginx-deployment
  Keluaran akan tampil seperti berikut:NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
  nginx-deployment 3 3 3 3 30m
  Tampilkan deskripsi Deployment:kubectl describe deployment nginx-deployment
  Keluaran akan tampil seperti berikut:Name: nginx-deployment
  Namespace: default
  CreationTimestamp: Sun, 02 Sep 2018 18:17:55 -0500
  Labels: app=nginx
  Annotations: deployment.kubernetes.io/revision=4
   kubernetes.io/change-cause=kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1 --record=true
  Selector: app=nginx
  Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
  StrategyType: RollingUpdate
  MinReadySeconds: 0
  RollingUpdateStrategy: 25% max unavailable, 25% max surge
  Pod Template:
   Labels: app=nginx
   Containers:
   nginx:
   Image: nginx:1.9.1
   Port: 80/TCP
   Host Port: 0/TCP
   Environment: <none>
   Mounts: <none>
   Volumes: <none>
  Conditions:
   Type Status Reason
   ---- ------ ------
   Available True MinimumReplicasAvailable
   Progressing True NewReplicaSetAvailable
  OldReplicaSets: <none>
  NewReplicaSet: nginx-deployment-c4747d96c (3/3 replicas created)
  Events:
   Type Reason Age
  ```