Installing Ingress Controller - Kubernetes

Installing the Ingress Controller

Prerequisites

Make sure you have access to the Ingress controller image:
  • For NGINX Ingress controller, use the image nginxdemos/nginx-ingress from DockerHub.
  • For NGINX Plus Ingress controller, build your own image and push it to your private Docker registry by following the instructions from here.
The installation manifests are located in the install folder. In the steps below we assume that you will be running the commands from that folder.

1. Create a Namespace, a SA and the Default Secret.

  1. Create a namespace and a service account for the Ingress controller:
    kubectl apply -f common/ns-and-sa.yaml
    
    
  2. Create a secret with a TLS certificate and a key for the default server in NGINX:
    $ kubectl apply -f common/default-server-secret.yaml
    
    Note: The default server returns the Not Found page with the 404 status code for all requests for domains for which there are no Ingress rules defined. For testing purposes we include a self-signed certificate and key that we generated. However, we recommend that you use your own certificate and key.
  3. Optional. Create a config map for customizing NGINX configuration (read more about customization here):
    $ kubectl apply -f common/nginx-config.yaml
    

2. Configure RBAC

If RBAC is enabled in your cluster, create a cluster role and bind it to the service account, created in Step 1:
$ kubectl apply -f rbac/rbac.yaml
Note: To perform this step you must be a cluster admin.

3. Deploy the Ingress Controller

We include two options for deploying the Ingress controller:
  • Deployment. Use a Deployment if you plan to dynamically change the number of Ingress controller replicas.
  • DaemonSet. Use a DaemonSet for deploying the Ingress controller on every node or a subset of nodes.

3.1 Create a Deployment

For NGINX, run:
$ kubectl apply -f deployment/nginx-ingress.yaml
For NGINX Plus, run:
$ kubectl apply -f deployment/nginx-plus-ingress.yaml
Note: Update the nginx-plus-ingress.yaml with the container image that you have built.
Kubernetes will create one Ingress controller pod.

3.2 Create a DaemonSet

For NGINX, run:
$ kubectl apply -f daemon-set/nginx-ingress.yaml
For NGINX Plus, run:
$ kubectl apply -f daemon-set/nginx-plus-ingress.yaml
Note: Update the nginx-plus-ingress.yaml with the container image that you have built.
Kubernetes will create an Ingress controller pod on every node of the cluster. Read this doc to learn how to run the Ingress controller on a subset of nodes, instead of every node of the cluster.

3.3 Check that the Ingress Controller is Running

Run the following command to make sure that the Ingress controller pods are running:
$ kubectl get pods --namespace=nginx-ingress

4. Get Access to the Ingress Controller

If you created a daemonset, ports 80 and 443 of the Ingress controller container are mapped to the same ports of the node where the container is running. To access the Ingress controller, use those ports and an IP address of any node of the cluster where the Ingress controller is running.
If you created a deployment, below are two options for accessing the Ingress controller pods.

4.1 Service with the Type NodePort

Create a service with the type NodePort:
$ kubectl create -f service/nodeport.yaml
Kubernetes will allocate two ports on every node of the cluster. To access the Ingress controller, use an IP address of any node of the cluster along with two allocated ports. Read more about the type NodePort here.

4.2 Service with the Type LoadBalancer

Create a service with the type LoadBalancer. Kubernetes will allocate and configure a cloud load balancer for load balancing the Ingress controller pods.
Create a service using a manifest for your cloud provider:
  • For GCP or Azure, run:
    $ kubectl apply -f service/loadbalancer.yaml
    
  • For AWS, run:
    $ kubectl apply -f service/loadbalancer-aws-elb.yaml
    
    Kubernetes will allocate a Classic Load Balancer (ELB) in TCP mode with the PROXY protocol enabled to pass the client's information (the IP address and the port). NGINX must be configured to use the PROXY protocol:
    • Add the following keys to the config map file nginx-config.yaml from the Step 1 :
      proxy-protocol: "True"
      real-ip-header: "proxy_protocol"
      set-real-ip-from: "0.0.0.0/0"
      
    • Update the config map:
      kubectl apply -f common/nginx-config.yaml
      
    Note: For AWS, additional options regarding an allocated load balancer are available, such as the type of a load balancer and SSL termination. Read this doc to learn more.
Use the public IP of the load balancer to access the Ingress controller. To get the public IP:
  • For GCP or Azure, run:
    $ kubectl get svc nginx-ingress --namespace=nginx-ingress
    
  • In case of AWS ELB, the public IP is not reported by kubectl, as the IP addresses of the ELB are not static and you should not rely on them, but rely on the ELB DNS name instead. However, you can use them for testing purposes. To get the DNS name of the ELB, run:
    $ kubectl describe svc nginx-ingress --namespace=nginx-ingress
    
    You can resolve the DNS name into an IP address using nslookup:
    $ nslookup 
    
Read more about the type LoadBalancer here.

5. Access the Live Activity Monitoring Dashboard

For NGINX Plus, you can access the live activity monitoring dashboard:
  1. Use kubectl port-forward command to forward connections to port 8080 on your local machine to port 8080 of an NGINX Plus Ingress controller pod (replace with the actual name of a pod):
    $ kubectl port-forward  8080:8080 --namespace=nginx-ingress 
    
  2. Open your browser at http://127.0.0.1:8080/dashboard.html to access the dashboard.

Support For Prometheus Monitoring

If you are using Prometheus, you can deploy the NGINX Plus Ingress controller with the prometheus exporter for NGINX Plus. The exporter will export NGINX Plus metrics into your Prometheus. To deploy the Ingress controller with the exporter, use the modified manifests:
  • For a deployment, run:
    $ kubectl apply -f deployment/nginx-plus-ingress-with-prometheus.yaml
    
  • For a daemon set, run:
    $ kubectl apply -f daemon-set/nginx-plus-ingress-with-prometheus.yaml
    
Note: this is a preview version of the prometheus exporter for NGINX Plus. It is not suitable for using in production environments.

Uninstall the Ingress Controller

Delete the nginx-ingress namespace to uninstall the Ingress controller along with all the auxiliary resources that were created:
$ kubectl delete namespace nginx-ingress

kubernetes Deployment with Ingress and Ingress Controller


Ingress Controller is a pre-requisite for this exercise. There is only one Ingress-controller for KOPS available on Github. https://github.com/kubernetes/ingress-nginx
I will create another post once I create the Ingress-Controller


$ kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/hello.yaml
deployment "hello" created

$ kubectl get deploy
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello     7         7         7            6           9s
$


$ kubectl get nodes
NAME      STATUS    ROLES     AGE       VERSION
host01    Ready         2m        v1.9.0
$ kubectl get pods
NAME                    READY     STATUS    RESTARTS   AGE
hello-f95d44d75-4d6g5   1/1       Running   0          1m
hello-f95d44d75-522kj   1/1       Running   0          1m
hello-f95d44d75-5w4jt   1/1       Running   0          1m
hello-f95d44d75-8tzr7   1/1       Running   0          1m
hello-f95d44d75-m6znh   1/1       Running   0          1m
hello-f95d44d75-s4br5   1/1       Running   0          1m
hello-f95d44d75-tzccb   1/1       Running   0          1m

$ w
 19:22:59 up 6 min,  1 user,  load average: 0.16, 0.15, 0.06
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    172.17.0.52      19:18    0.00s  0.08s  0.00s w

$ netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      1886/localkube
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      1886/localkube
tcp        0      0 127.0.0.1:2380          0.0.0.0:*               LISTEN      1886/localkube
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      674/sshd
tcp6       0      0 :::8443                 :::*                    LISTEN      1886/localkube
tcp6       0      0 :::4194                 :::*                    LISTEN      1886/localkube
tcp6       0      0 :::10250                :::*                    LISTEN      1886/localkube
tcp6       0      0 :::10251                :::*                    LISTEN      1886/localkube
tcp6       0      0 :::10252                :::*                    LISTEN      1886/localkube
tcp6       0      0 :::10255                :::*                    LISTEN      1886/localkube
tcp6       0      0 :::30000                :::*                    LISTEN      1886/localkube
tcp6       0      0 :::22                   :::*                    LISTEN      674/sshd
$



$ kubectl describe deploy hello
Name:                   hello
Namespace:              default
CreationTimestamp:      Fri, 13 Apr 2018 19:20:16 +0000
Labels:                 app=hello
                        tier=backend
                        track=stable
Annotations:            deployment.kubernetes.io/revision=1
Selector:               app=hello,tier=backend,track=stable
Replicas:               7 desired | 7 updated | 7 total | 7 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  app=hello
           tier=backend
           track=stable
  Containers:
   hello:
    Image:        gcr.io/google-samples/hello-go-gke:1.0
    Port:         80/TCP
    Environment: 
    Mounts:       
  Volumes:       
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets: 
NewReplicaSet:   hello-f95d44d75 (7/7 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  4m    deployment-controller  Scaled up replica set hello-f95d44d75 to 7




$ kubectl get service
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1            443/TCP   5m
$ kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/hello-service.yaml
service "hello" created



$ kubectl create -f https://k8s.io/docs/tasks/access-application-cluster/hello-service.yaml
service "hello" created
$
$
$ kubectl get service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
hello        ClusterIP   10.111.253.211           80/TCP    2m
kubernetes   ClusterIP   10.96.0.1                443/TCP   8m
$


$ kubectl describe service hello
Name:              hello
Namespace:         default
Labels:           
Annotations:       
Selector:          app=hello,tier=backend
Type:              ClusterIP
IP:                10.111.253.211
Port:                80/TCP
TargetPort:        http/TCP
Endpoints:         172.18.0.10:80,172.18.0.4:80,172.18.0.5:80 + 4 more...
Session Affinity:  None
Events:           
$

$ vi ingress.yaml
$
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: hello
    servicePort: 80

$ kubectl create -f ingress.yaml
ingress "test-ingress" created
$


$ kubectl get ingress
NAME           HOSTS     ADDRESS   PORTS     AGE
test-ingress   *                   80        26s
$ kubectl get ingress
NAME           HOSTS     ADDRESS   PORTS     AGE
test-ingress   *                   80        28s
$ kubectl describe ingress test-ingress
Name:             test-ingress
Namespace:        default
Address:
Default backend:  hello:80 (172.18.0.10:80,172.18.0.4:80,172.18.0.5:80 + 4 more...)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *     *     hello:80 (172.18.0.10:80,172.18.0.4:80,172.18.0.5:80 + 4 more...)
Annotations:
Events: 
$ kubectl get ingress
NAME           HOSTS     ADDRESS   PORTS     AGE
test-ingress   *                   80        2m
$ kubectl get ingress
NAME           HOSTS     ADDRESS   PORTS     AGE
test-ingress   *                   80        2m
$
$

Kubernetes Dashboard Bearer Token

While Login in to Kubernetes dashboard it will ask for 2 types of authentication :
1. Kubeconfig file upload
2. Bearer Token

Below is the way to fetch the bearer token using a single line command and paste it on the Login page. It will Login successfully..



kubectl -n kube-system describe secret $(
  kubectl -n kube-system get secret | \
  awk '/^deployment-controller-token-/{print $1}'
) | \
awk '$1=="token:"{print $2}'

kops - open /home/ubuntu/.ssh/id_rsa.pub: no such file or directory


ubuntu@ip-172-31-43-47:~$ kops create cluster --zones=us-east-2c useast2.soldatinc.net
I0405 00:00:15.764429   15685 create_cluster.go:439] Inferred --cloud=aws from zone "us-east-2c"

error reading SSH key file "/home/ubuntu/.ssh/id_rsa.pub": open /home/ubuntu/.ssh/id_rsa.pub: no such file or directory
ubuntu@ip-172-31-43-47:~$ pwd
/home/ubuntu
ubuntu@ip-172-31-43-47:~$ cat /home/ubuntu/.ssh/id_rsa.pub
cat: /home/ubuntu/.ssh/id_rsa.pub: No such file or directory
ubuntu@ip-172-31-43-47:~$ cd /home/ubuntu/.ssh/
ubuntu@ip-172-31-43-47:~/.ssh$ ll
total 12
drwx------ 2 ubuntu ubuntu 4096 Apr  4 02:04 ./
drwxr-xr-x 5 ubuntu ubuntu 4096 Apr  4 23:58 ../
-rw------- 1 ubuntu ubuntu  392 Apr  4 02:04 authorized_keys
ubuntu@ip-172-31-43-47:~/.ssh$ cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZhu8fX+eiatI97J7NXneGVrGN2t5R9IFiH+ZX7bCtw8z7fofGsSQ1NN1uxwEmWEPSyHGhItUbnU9OeN9/FGQpHK93u9DpMhim9Navem7LuWM1ew78HY+9Aqk40OG0cOOGde4Wziq8DX8/r5VJdNtlUNaGYEG7/gtfpgpgR6LTCHc9pz9XUDYt+it5QBzD+rtdWGKIw6Pmg84jj4jhAhuvrMwZu5sfAVhuD6TBqWHmVDRx5PesvGc78mkzlimzzPaTHS9oaT7kN1dGmQGBzZbrDF6qPxfgaYd5zWDjS42dwdiP3OKOpN49NxxEF8hd0ysA6CQnEStznxaR5GNynP4r jskcbe-key
ubuntu@ip-172-31-43-47:~/.ssh$

Fixed after doing an ssh-keygen

node.js on Docker Container Dockerfile

FROM node:7-alpine

RUN mkdir -p /src/app

WORKDIR /src/app

COPY package.json /src/app/package.json

RUN npm install

COPY . /src/app

EXPOSE 3000

CMD [ "npm", "start" ]





Step 2/8 : RUN mkdir -p /src/app
 ---> Running in 5a4f62bfb8f2
 ---> f8dd0e425bd1
Removing intermediate container 5a4f62bfb8f2
Step 3/8 : WORKDIR /src/app
 ---> 52e7c1d3255e
Removing intermediate container e7a3af477422
Step 4/8 : COPY package.json /src/app/package.json
 ---> 24c05da0c257
Step 5/8 : RUN npm install
 ---> Running in 1d2e77a9b249
npm info it worked if it ends with ok
npm info using npm@4.2.0
npm info using node@v7.10.1
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/express
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/body-parser
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/cookie-parser
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/morgan
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/serve-favicon
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/debug
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/jade
npm http 200 https://registry.npmjs.org/cookie-parser
npm http 200 https://registry.npmjs.org/morgan
npm http 200 https://registry.npmjs.org/body-parser
npm http 200 https://registry.npmjs.org/serve-favicon
npm http 200 https://registry.npmjs.org/debug
npm http 200 https://registry.npmjs.org/jade
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/morgan/-/morgan-1.3.2.tgz
npm http 200 https://registry.npmjs.org/express
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/body-parser/-/body-parser-1.8.4.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz
npm http fetch 200 https://registry.npmjs.org/morgan/-/morgan-1.3.2.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.1.7.tgz
npm http fetch 200 https://registry.npmjs.org/body-parser/-/body-parser-1.8.4.tgz
npm http fetch 200 https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz
npm http fetch 200 https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.1.7.tgz
npm WARN deprecated jade@1.6.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/debug/-/debug-2.0.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/jade/-/jade-1.6.0.tgz
npm http fetch 200 https://registry.npmjs.org/debug/-/debug-2.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/jade/-/jade-1.6.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/express/-/express-4.9.8.tgz
npm http fetch 200 https://registry.npmjs.org/express/-/express-4.9.8.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/bytes
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/depd
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/iconv-lite
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/media-typer
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/on-finished
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/qs
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/raw-body
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/type-is
npm http 200 https://registry.npmjs.org/media-typer
npm http 200 https://registry.npmjs.org/on-finished
npm http 200 https://registry.npmjs.org/bytes
npm http 200 https://registry.npmjs.org/raw-body
npm http 200 https://registry.npmjs.org/depd
npm http 200 https://registry.npmjs.org/iconv-lite
npm http 200 https://registry.npmjs.org/qs
npm http 200 https://registry.npmjs.org/type-is
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/depd/-/depd-0.4.5.tgz
npm http fetch 200 https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz
npm http fetch 200 https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz
npm http fetch 200 https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/qs/-/qs-2.2.4.tgz
npm http fetch 200 https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz
npm http fetch 200 https://registry.npmjs.org/depd/-/depd-0.4.5.tgz
npm http fetch 200 https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz
npm http fetch 200 https://registry.npmjs.org/qs/-/qs-2.2.4.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz
npm http fetch 200 https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/ee-first
npm http 200 https://registry.npmjs.org/ee-first
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz
npm http fetch 200 https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/mime-types
npm http 200 https://registry.npmjs.org/mime-types
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz
npm http fetch 200 https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/mime-db
npm http 200 https://registry.npmjs.org/mime-db
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz
npm http fetch 200 https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/cookie
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/cookie-signature
npm http 200 https://registry.npmjs.org/cookie-signature
npm http 200 https://registry.npmjs.org/cookie
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz
npm http fetch 200 https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz
npm http fetch 200 https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/ms
npm http 200 https://registry.npmjs.org/ms
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/ms/-/ms-0.6.2.tgz
npm http fetch 200 https://registry.npmjs.org/ms/-/ms-0.6.2.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/accepts
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/escape-html
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/etag
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/finalhandler
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/fresh
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/methods
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/parseurl
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/path-to-regexp
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/proxy-addr
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/range-parser
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/send
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/serve-static
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/vary
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/merge-descriptors
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/utils-merge
npm http 200 https://registry.npmjs.org/methods
npm http 200 https://registry.npmjs.org/escape-html
npm http 200 https://registry.npmjs.org/etag
npm http 200 https://registry.npmjs.org/parseurl
npm http 200 https://registry.npmjs.org/fresh
npm http 200 https://registry.npmjs.org/finalhandler
npm http 200 https://registry.npmjs.org/accepts
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz
npm http 200 https://registry.npmjs.org/proxy-addr
npm http 200 https://registry.npmjs.org/path-to-regexp
npm http fetch 200 https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz
npm http fetch 200 https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz
npm http 200 https://registry.npmjs.org/vary
npm http 200 https://registry.npmjs.org/range-parser
npm http 200 https://registry.npmjs.org/utils-merge
npm http 200 https://registry.npmjs.org/send
npm http 200 https://registry.npmjs.org/serve-static
npm http 200 https://registry.npmjs.org/merge-descriptors
npm info addNameTag [ 'parseurl', 'latest' ]
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/methods/-/methods-1.1.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/etag/-/etag-1.4.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz
npm http fetch 200 https://registry.npmjs.org/methods/-/methods-1.1.0.tgz
npm http fetch 200 https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/finalhandler/-/finalhandler-0.2.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz
npm http fetch 200 https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz
npm http fetch 200 https://registry.npmjs.org/etag/-/etag-1.4.0.tgz
npm http fetch 200 https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz
npm http fetch 200 https://registry.npmjs.org/finalhandler/-/finalhandler-0.2.0.tgz
npm http fetch 200 https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz
npm http fetch 200 https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/vary/-/vary-1.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/send/-/send-0.9.3.tgz
npm http fetch 200 https://registry.npmjs.org/vary/-/vary-1.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/serve-static/-/serve-static-1.6.5.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz
npm http fetch 200 https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz
npm http fetch 200 https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/send/-/send-0.9.3.tgz
npm http fetch 200 https://registry.npmjs.org/serve-static/-/serve-static-1.6.5.tgz
npm http fetch 200 https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/negotiator
npm http 200 https://registry.npmjs.org/negotiator
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz
npm http fetch 200 https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/crc
npm http 200 https://registry.npmjs.org/crc
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/crc/-/crc-3.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/crc/-/crc-3.0.0.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/forwarded
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/ipaddr.js
npm http 200 https://registry.npmjs.org/forwarded
npm http 200 https://registry.npmjs.org/ipaddr.js
npm info addNameTag [ 'forwarded', 'latest' ]
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz
npm http fetch 200 https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz
npm http fetch 200 https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/destroy
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/mime
npm http 200 https://registry.npmjs.org/destroy
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz
npm http fetch 200 https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz
npm http 200 https://registry.npmjs.org/mime
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/mime/-/mime-1.2.11.tgz
npm http fetch 200 https://registry.npmjs.org/mime/-/mime-1.2.11.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/character-parser
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/commander
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/constantinople
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/mkdirp
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/monocle
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/transformers
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/void-elements
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/with
npm http 200 https://registry.npmjs.org/void-elements
npm http 200 https://registry.npmjs.org/constantinople
npm http 200 https://registry.npmjs.org/character-parser
npm http 200 https://registry.npmjs.org/with
npm http 200 https://registry.npmjs.org/mkdirp
npm http 200 https://registry.npmjs.org/transformers
npm http 200 https://registry.npmjs.org/monocle
npm http 200 https://registry.npmjs.org/commander
npm WARN deprecated constantinople@2.0.1: Please update to at least constantinople 3.1.1
npm info addNameTag [ 'mkdirp', 'latest' ]
npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/void-elements/-/void-elements-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/character-parser/-/character-parser-1.2.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/with/-/with-3.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/monocle/-/monocle-1.1.51.tgz
npm http fetch 200 https://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/void-elements/-/void-elements-1.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz
npm http fetch 200 https://registry.npmjs.org/character-parser/-/character-parser-1.2.0.tgz
npm http fetch 200 https://registry.npmjs.org/with/-/with-3.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/commander/-/commander-2.1.0.tgz
npm http fetch 200 https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz
npm http fetch 200 https://registry.npmjs.org/monocle/-/monocle-1.1.51.tgz
npm http fetch 200 https://registry.npmjs.org/commander/-/commander-2.1.0.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/uglify-js
npm http 200 https://registry.npmjs.org/uglify-js
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz
npm http fetch 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/async
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/source-map
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/uglify-to-browserify
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/yargs
npm http 200 https://registry.npmjs.org/uglify-to-browserify
npm http 200 https://registry.npmjs.org/async
npm http 200 https://registry.npmjs.org/source-map
npm http 200 https://registry.npmjs.org/yargs
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz
npm http fetch 200 https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/async/-/async-0.2.10.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz
npm http fetch 200 https://registry.npmjs.org/async/-/async-0.2.10.tgz
npm http fetch 200 https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz
npm http fetch 200 https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/amdefine
npm http 200 https://registry.npmjs.org/amdefine
npm info addNameTag [ 'amdefine', 'latest' ]
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/camelcase
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/decamelize
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/window-size
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/wordwrap
npm http 200 https://registry.npmjs.org/wordwrap
npm http 200 https://registry.npmjs.org/decamelize
npm http 200 https://registry.npmjs.org/camelcase
npm http 200 https://registry.npmjs.org/window-size
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz
npm http fetch 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz
npm http fetch 200 https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz
npm http fetch 200 https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz
npm http fetch 200 https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/minimist
npm http 200 https://registry.npmjs.org/minimist
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz
npm http fetch 200 https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/readdirp
npm http 200 https://registry.npmjs.org/readdirp
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz
npm http fetch 200 https://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/minimatch
npm http 200 https://registry.npmjs.org/minimatch
npm info addNameTag [ 'minimatch', 'latest' ]
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz
npm http fetch 200 https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/brace-expansion
npm http 200 https://registry.npmjs.org/brace-expansion
npm info addNameTag [ 'brace-expansion', 'latest' ]
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz
npm http fetch 200 https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/balanced-match
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/concat-map
npm http 200 https://registry.npmjs.org/balanced-match
npm http 200 https://registry.npmjs.org/concat-map
npm info addNameTag [ 'balanced-match', 'latest' ]
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/promise
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/css
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz
npm http 200 https://registry.npmjs.org/css
npm http 200 https://registry.npmjs.org/promise
npm http fetch 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/css/-/css-1.0.8.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/promise/-/promise-2.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/css/-/css-1.0.8.tgz
npm http fetch 200 https://registry.npmjs.org/promise/-/promise-2.0.0.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/css-parse
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/css-stringify
npm http 200 https://registry.npmjs.org/css-parse
npm http 200 https://registry.npmjs.org/css-stringify
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz
npm http fetch 200 https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz
npm http fetch 200 https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/is-promise
npm http 200 https://registry.npmjs.org/is-promise
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/optimist
npm http 200 https://registry.npmjs.org/optimist
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm http fetch 200 https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/basic-auth
npm http 200 https://registry.npmjs.org/basic-auth
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/etag/-/etag-1.5.1.tgz
npm http fetch 200 https://registry.npmjs.org/etag/-/etag-1.5.1.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/crc/-/crc-3.2.1.tgz
npm http fetch 200 https://registry.npmjs.org/crc/-/crc-3.2.1.tgz
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~preinstall: scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle amdefine@1.0.1~preinstall: amdefine@1.0.1
npm info lifecycle async@0.2.10~preinstall: async@0.2.10
npm info lifecycle balanced-match@1.0.0~preinstall: balanced-match@1.0.0
npm info lifecycle basic-auth@1.0.0~preinstall: basic-auth@1.0.0
npm info lifecycle bytes@1.0.0~preinstall: bytes@1.0.0
npm info lifecycle camelcase@1.2.1~preinstall: camelcase@1.2.1
npm info lifecycle character-parser@1.2.0~preinstall: character-parser@1.2.0
npm info lifecycle commander@2.1.0~preinstall: commander@2.1.0
npm info lifecycle concat-map@0.0.1~preinstall: concat-map@0.0.1
npm info lifecycle brace-expansion@1.1.11~preinstall: brace-expansion@1.1.11
npm info lifecycle cookie@0.1.3~preinstall: cookie@0.1.3
npm info lifecycle cookie-signature@1.0.6~preinstall: cookie-signature@1.0.6
npm info lifecycle crc@3.0.0~preinstall: crc@3.0.0
npm info lifecycle css-parse@1.0.4~preinstall: css-parse@1.0.4
npm info lifecycle css-stringify@1.0.5~preinstall: css-stringify@1.0.5
npm info lifecycle css@1.0.8~preinstall: css@1.0.8
npm info lifecycle decamelize@1.2.0~preinstall: decamelize@1.2.0
npm info lifecycle depd@0.4.5~preinstall: depd@0.4.5
npm info lifecycle destroy@1.0.3~preinstall: destroy@1.0.3
npm info lifecycle ee-first@1.0.5~preinstall: ee-first@1.0.5
npm info lifecycle escape-html@1.0.1~preinstall: escape-html@1.0.1
npm info lifecycle etag@1.4.0~preinstall: etag@1.4.0
npm info lifecycle cookie@0.1.2~preinstall: cookie@0.1.2
npm info lifecycle cookie-signature@1.0.5~preinstall: cookie-signature@1.0.5
npm info lifecycle forwarded@0.1.2~preinstall: forwarded@0.1.2
npm info lifecycle fresh@0.2.4~preinstall: fresh@0.2.4
npm info lifecycle iconv-lite@0.4.4~preinstall: iconv-lite@0.4.4
npm info lifecycle ipaddr.js@1.0.5~preinstall: ipaddr.js@1.0.5
npm info lifecycle is-promise@1.0.1~preinstall: is-promise@1.0.1
npm info lifecycle media-typer@0.3.0~preinstall: media-typer@0.3.0
npm info lifecycle merge-descriptors@0.0.2~preinstall: merge-descriptors@0.0.2
npm info lifecycle methods@1.1.0~preinstall: methods@1.1.0
npm info lifecycle mime@1.2.11~preinstall: mime@1.2.11
npm info lifecycle mime-db@1.12.0~preinstall: mime-db@1.12.0
npm info lifecycle mime-types@2.0.14~preinstall: mime-types@2.0.14
npm info lifecycle minimatch@3.0.4~preinstall: minimatch@3.0.4
npm info lifecycle minimist@0.0.8~preinstall: minimist@0.0.8
npm info lifecycle mkdirp@0.5.1~preinstall: mkdirp@0.5.1
npm info lifecycle ms@0.6.2~preinstall: ms@0.6.2
npm info lifecycle debug@2.0.0~preinstall: debug@2.0.0
npm info lifecycle finalhandler@0.2.0~preinstall: finalhandler@0.2.0
npm info lifecycle negotiator@0.4.9~preinstall: negotiator@0.4.9
npm info lifecycle accepts@1.1.4~preinstall: accepts@1.1.4
npm info lifecycle on-finished@2.1.0~preinstall: on-finished@2.1.0
npm info lifecycle parseurl@1.3.2~preinstall: parseurl@1.3.2
npm info lifecycle path-to-regexp@0.1.3~preinstall: path-to-regexp@0.1.3
npm info lifecycle promise@2.0.0~preinstall: promise@2.0.0
npm info lifecycle proxy-addr@1.0.10~preinstall: proxy-addr@1.0.10
npm info lifecycle qs@2.2.4~preinstall: qs@2.2.4
npm info lifecycle range-parser@1.0.3~preinstall: range-parser@1.0.3
npm info lifecycle raw-body@1.3.0~preinstall: raw-body@1.3.0
npm info lifecycle readdirp@0.2.5~preinstall: readdirp@0.2.5
npm info lifecycle monocle@1.1.51~preinstall: monocle@1.1.51
npm info lifecycle send@0.9.3~preinstall: send@0.9.3
npm info lifecycle crc@3.2.1~preinstall: crc@3.2.1
npm info lifecycle etag@1.5.1~preinstall: etag@1.5.1
npm info lifecycle source-map@0.1.34~preinstall: source-map@0.1.34
npm info lifecycle type-is@1.5.7~preinstall: type-is@1.5.7
npm info lifecycle uglify-to-browserify@1.0.2~preinstall: uglify-to-browserify@1.0.2
npm info lifecycle utils-merge@1.0.0~preinstall: utils-merge@1.0.0
npm info lifecycle serve-static@1.6.5~preinstall: serve-static@1.6.5
npm info lifecycle vary@1.0.1~preinstall: vary@1.0.1
npm info lifecycle void-elements@1.0.0~preinstall: void-elements@1.0.0
npm info lifecycle window-size@0.1.0~preinstall: window-size@0.1.0
npm info lifecycle wordwrap@0.0.2~preinstall: wordwrap@0.0.2
npm info lifecycle optimist@0.3.7~preinstall: optimist@0.3.7
npm info lifecycle uglify-js@2.2.5~preinstall: uglify-js@2.2.5
npm info lifecycle transformers@2.1.0~preinstall: transformers@2.1.0
npm info lifecycle yargs@3.5.4~preinstall: yargs@3.5.4
npm info lifecycle uglify-js@2.4.24~preinstall: uglify-js@2.4.24
npm info lifecycle constantinople@2.0.1~preinstall: constantinople@2.0.1
npm info lifecycle with@3.0.1~preinstall: with@3.0.1
npm info lifecycle body-parser@1.8.4~preinstall: body-parser@1.8.4
npm info lifecycle cookie-parser@1.3.5~preinstall: cookie-parser@1.3.5
npm info lifecycle express@4.9.8~preinstall: express@4.9.8
npm info lifecycle jade@1.6.0~preinstall: jade@1.6.0
npm info lifecycle morgan@1.3.2~preinstall: morgan@1.3.2
npm info lifecycle serve-favicon@2.1.7~preinstall: serve-favicon@2.1.7
npm info linkStuff amdefine@1.0.1
npm info linkStuff async@0.2.10
npm info linkStuff balanced-match@1.0.0
npm info linkStuff basic-auth@1.0.0
npm info linkStuff bytes@1.0.0
npm info linkStuff camelcase@1.2.1
npm info linkStuff character-parser@1.2.0
npm info linkStuff commander@2.1.0
npm info linkStuff concat-map@0.0.1
npm info linkStuff brace-expansion@1.1.11
npm info linkStuff cookie@0.1.3
npm info linkStuff cookie-signature@1.0.6
npm info linkStuff crc@3.0.0
npm info linkStuff css-parse@1.0.4
npm info linkStuff css-stringify@1.0.5
npm info linkStuff css@1.0.8
npm info linkStuff decamelize@1.2.0
npm info linkStuff depd@0.4.5
npm info linkStuff destroy@1.0.3
npm info linkStuff ee-first@1.0.5
npm info linkStuff escape-html@1.0.1
npm info linkStuff etag@1.4.0
npm info linkStuff cookie@0.1.2
npm info linkStuff cookie-signature@1.0.5
npm info linkStuff forwarded@0.1.2
npm info linkStuff fresh@0.2.4
npm info linkStuff iconv-lite@0.4.4
npm info linkStuff ipaddr.js@1.0.5
npm info linkStuff is-promise@1.0.1
npm info linkStuff media-typer@0.3.0
npm info linkStuff merge-descriptors@0.0.2
npm info linkStuff methods@1.1.0
npm info linkStuff mime@1.2.11
npm info linkStuff mime-db@1.12.0
npm info linkStuff mime-types@2.0.14
npm info linkStuff minimatch@3.0.4
npm info linkStuff minimist@0.0.8
npm info linkStuff mkdirp@0.5.1
npm info linkStuff ms@0.6.2
npm info linkStuff debug@2.0.0
npm info linkStuff finalhandler@0.2.0
npm info linkStuff negotiator@0.4.9
npm info linkStuff accepts@1.1.4
npm info linkStuff on-finished@2.1.0
npm info linkStuff parseurl@1.3.2
npm info linkStuff path-to-regexp@0.1.3
npm info linkStuff promise@2.0.0
npm info linkStuff proxy-addr@1.0.10
npm info linkStuff qs@2.2.4
npm info linkStuff range-parser@1.0.3
npm info linkStuff raw-body@1.3.0
npm info linkStuff readdirp@0.2.5
npm info linkStuff monocle@1.1.51
npm info linkStuff send@0.9.3
npm info linkStuff crc@3.2.1
npm info linkStuff etag@1.5.1
npm info linkStuff source-map@0.1.34
npm info linkStuff type-is@1.5.7
npm info linkStuff uglify-to-browserify@1.0.2
npm info linkStuff utils-merge@1.0.0
npm info linkStuff serve-static@1.6.5
npm info linkStuff vary@1.0.1
npm info linkStuff void-elements@1.0.0
npm info linkStuff window-size@0.1.0
npm info linkStuff wordwrap@0.0.2
npm info linkStuff optimist@0.3.7
npm info linkStuff uglify-js@2.2.5
npm info linkStuff transformers@2.1.0
npm info linkStuff yargs@3.5.4
npm info linkStuff uglify-js@2.4.24
npm info linkStuff constantinople@2.0.1
npm info linkStuff with@3.0.1
npm info linkStuff body-parser@1.8.4
npm info linkStuff cookie-parser@1.3.5
npm info linkStuff express@4.9.8
npm info linkStuff jade@1.6.0
npm info linkStuff morgan@1.3.2
npm info linkStuff serve-favicon@2.1.7
npm info lifecycle amdefine@1.0.1~install: amdefine@1.0.1
npm info lifecycle async@0.2.10~install: async@0.2.10
npm info lifecycle balanced-match@1.0.0~install: balanced-match@1.0.0
npm info lifecycle basic-auth@1.0.0~install: basic-auth@1.0.0
npm info lifecycle bytes@1.0.0~install: bytes@1.0.0
npm info lifecycle camelcase@1.2.1~install: camelcase@1.2.1
npm info lifecycle character-parser@1.2.0~install: character-parser@1.2.0
npm info lifecycle commander@2.1.0~install: commander@2.1.0
npm info lifecycle concat-map@0.0.1~install: concat-map@0.0.1
npm info lifecycle brace-expansion@1.1.11~install: brace-expansion@1.1.11
npm info lifecycle cookie@0.1.3~install: cookie@0.1.3
npm info lifecycle cookie-signature@1.0.6~install: cookie-signature@1.0.6
npm info lifecycle crc@3.0.0~install: crc@3.0.0
npm info lifecycle css-parse@1.0.4~install: css-parse@1.0.4
npm info lifecycle css-stringify@1.0.5~install: css-stringify@1.0.5
npm info lifecycle css@1.0.8~install: css@1.0.8
npm info lifecycle decamelize@1.2.0~install: decamelize@1.2.0
npm info lifecycle depd@0.4.5~install: depd@0.4.5
npm info lifecycle destroy@1.0.3~install: destroy@1.0.3
npm info lifecycle ee-first@1.0.5~install: ee-first@1.0.5
npm info lifecycle escape-html@1.0.1~install: escape-html@1.0.1
npm info lifecycle etag@1.4.0~install: etag@1.4.0
npm info lifecycle cookie@0.1.2~install: cookie@0.1.2
npm info lifecycle cookie-signature@1.0.5~install: cookie-signature@1.0.5
npm info lifecycle forwarded@0.1.2~install: forwarded@0.1.2
npm info lifecycle fresh@0.2.4~install: fresh@0.2.4
npm info lifecycle iconv-lite@0.4.4~install: iconv-lite@0.4.4
npm info lifecycle ipaddr.js@1.0.5~install: ipaddr.js@1.0.5
npm info lifecycle is-promise@1.0.1~install: is-promise@1.0.1
npm info lifecycle media-typer@0.3.0~install: media-typer@0.3.0
npm info lifecycle merge-descriptors@0.0.2~install: merge-descriptors@0.0.2
npm info lifecycle methods@1.1.0~install: methods@1.1.0
npm info lifecycle mime@1.2.11~install: mime@1.2.11
npm info lifecycle mime-db@1.12.0~install: mime-db@1.12.0
npm info lifecycle mime-types@2.0.14~install: mime-types@2.0.14
npm info lifecycle minimatch@3.0.4~install: minimatch@3.0.4
npm info lifecycle minimist@0.0.8~install: minimist@0.0.8
npm info lifecycle mkdirp@0.5.1~install: mkdirp@0.5.1
npm info lifecycle ms@0.6.2~install: ms@0.6.2
npm info lifecycle debug@2.0.0~install: debug@2.0.0
npm info lifecycle finalhandler@0.2.0~install: finalhandler@0.2.0
npm info lifecycle negotiator@0.4.9~install: negotiator@0.4.9
npm info lifecycle accepts@1.1.4~install: accepts@1.1.4
npm info lifecycle on-finished@2.1.0~install: on-finished@2.1.0
npm info lifecycle parseurl@1.3.2~install: parseurl@1.3.2
npm info lifecycle path-to-regexp@0.1.3~install: path-to-regexp@0.1.3
npm info lifecycle promise@2.0.0~install: promise@2.0.0
npm info lifecycle proxy-addr@1.0.10~install: proxy-addr@1.0.10
npm info lifecycle qs@2.2.4~install: qs@2.2.4
npm info lifecycle range-parser@1.0.3~install: range-parser@1.0.3
npm info lifecycle raw-body@1.3.0~install: raw-body@1.3.0
npm info lifecycle readdirp@0.2.5~install: readdirp@0.2.5
npm info lifecycle monocle@1.1.51~install: monocle@1.1.51
npm info lifecycle send@0.9.3~install: send@0.9.3
npm info lifecycle crc@3.2.1~install: crc@3.2.1
npm info lifecycle etag@1.5.1~install: etag@1.5.1
npm info lifecycle source-map@0.1.34~install: source-map@0.1.34
npm info lifecycle type-is@1.5.7~install: type-is@1.5.7
npm info lifecycle uglify-to-browserify@1.0.2~install: uglify-to-browserify@1.0.2
npm info lifecycle utils-merge@1.0.0~install: utils-merge@1.0.0
npm info lifecycle serve-static@1.6.5~install: serve-static@1.6.5
npm info lifecycle vary@1.0.1~install: vary@1.0.1
npm info lifecycle void-elements@1.0.0~install: void-elements@1.0.0
npm info lifecycle window-size@0.1.0~install: window-size@0.1.0
npm info lifecycle wordwrap@0.0.2~install: wordwrap@0.0.2
npm info lifecycle optimist@0.3.7~install: optimist@0.3.7
npm info lifecycle uglify-js@2.2.5~install: uglify-js@2.2.5
npm info lifecycle transformers@2.1.0~install: transformers@2.1.0
npm info lifecycle yargs@3.5.4~install: yargs@3.5.4
npm info lifecycle uglify-js@2.4.24~install: uglify-js@2.4.24
npm info lifecycle constantinople@2.0.1~install: constantinople@2.0.1
npm info lifecycle with@3.0.1~install: with@3.0.1
npm info lifecycle body-parser@1.8.4~install: body-parser@1.8.4
npm info lifecycle cookie-parser@1.3.5~install: cookie-parser@1.3.5
npm info lifecycle express@4.9.8~install: express@4.9.8
npm info lifecycle jade@1.6.0~install: jade@1.6.0
npm info lifecycle morgan@1.3.2~install: morgan@1.3.2
npm info lifecycle serve-favicon@2.1.7~install: serve-favicon@2.1.7
npm info lifecycle amdefine@1.0.1~postinstall: amdefine@1.0.1
npm info lifecycle async@0.2.10~postinstall: async@0.2.10
npm info lifecycle balanced-match@1.0.0~postinstall: balanced-match@1.0.0
npm info lifecycle basic-auth@1.0.0~postinstall: basic-auth@1.0.0
npm info lifecycle bytes@1.0.0~postinstall: bytes@1.0.0
npm info lifecycle camelcase@1.2.1~postinstall: camelcase@1.2.1
npm info lifecycle character-parser@1.2.0~postinstall: character-parser@1.2.0
npm info lifecycle commander@2.1.0~postinstall: commander@2.1.0
npm info lifecycle concat-map@0.0.1~postinstall: concat-map@0.0.1
npm info lifecycle brace-expansion@1.1.11~postinstall: brace-expansion@1.1.11
npm info lifecycle cookie@0.1.3~postinstall: cookie@0.1.3
npm info lifecycle cookie-signature@1.0.6~postinstall: cookie-signature@1.0.6
npm info lifecycle crc@3.0.0~postinstall: crc@3.0.0
npm info lifecycle css-parse@1.0.4~postinstall: css-parse@1.0.4
npm info lifecycle css-stringify@1.0.5~postinstall: css-stringify@1.0.5
npm info lifecycle css@1.0.8~postinstall: css@1.0.8
npm info lifecycle decamelize@1.2.0~postinstall: decamelize@1.2.0
npm info lifecycle depd@0.4.5~postinstall: depd@0.4.5
npm info lifecycle destroy@1.0.3~postinstall: destroy@1.0.3
npm info lifecycle ee-first@1.0.5~postinstall: ee-first@1.0.5
npm info lifecycle escape-html@1.0.1~postinstall: escape-html@1.0.1
npm info lifecycle etag@1.4.0~postinstall: etag@1.4.0
npm info lifecycle cookie@0.1.2~postinstall: cookie@0.1.2
npm info lifecycle cookie-signature@1.0.5~postinstall: cookie-signature@1.0.5
npm info lifecycle forwarded@0.1.2~postinstall: forwarded@0.1.2
npm info lifecycle fresh@0.2.4~postinstall: fresh@0.2.4
npm info lifecycle iconv-lite@0.4.4~postinstall: iconv-lite@0.4.4
npm info lifecycle ipaddr.js@1.0.5~postinstall: ipaddr.js@1.0.5
npm info lifecycle is-promise@1.0.1~postinstall: is-promise@1.0.1
npm info lifecycle media-typer@0.3.0~postinstall: media-typer@0.3.0
npm info lifecycle merge-descriptors@0.0.2~postinstall: merge-descriptors@0.0.2
npm info lifecycle methods@1.1.0~postinstall: methods@1.1.0
npm info lifecycle mime@1.2.11~postinstall: mime@1.2.11
npm info lifecycle mime-db@1.12.0~postinstall: mime-db@1.12.0
npm info lifecycle mime-types@2.0.14~postinstall: mime-types@2.0.14
npm info lifecycle minimatch@3.0.4~postinstall: minimatch@3.0.4
npm info lifecycle minimist@0.0.8~postinstall: minimist@0.0.8
npm info lifecycle mkdirp@0.5.1~postinstall: mkdirp@0.5.1
npm info lifecycle ms@0.6.2~postinstall: ms@0.6.2
npm info lifecycle debug@2.0.0~postinstall: debug@2.0.0
npm info lifecycle finalhandler@0.2.0~postinstall: finalhandler@0.2.0
npm info lifecycle negotiator@0.4.9~postinstall: negotiator@0.4.9
npm info lifecycle accepts@1.1.4~postinstall: accepts@1.1.4
npm info lifecycle on-finished@2.1.0~postinstall: on-finished@2.1.0
npm info lifecycle parseurl@1.3.2~postinstall: parseurl@1.3.2
npm info lifecycle path-to-regexp@0.1.3~postinstall: path-to-regexp@0.1.3
npm info lifecycle promise@2.0.0~postinstall: promise@2.0.0
npm info lifecycle proxy-addr@1.0.10~postinstall: proxy-addr@1.0.10
npm info lifecycle qs@2.2.4~postinstall: qs@2.2.4
npm info lifecycle range-parser@1.0.3~postinstall: range-parser@1.0.3
npm info lifecycle raw-body@1.3.0~postinstall: raw-body@1.3.0
npm info lifecycle readdirp@0.2.5~postinstall: readdirp@0.2.5
npm info lifecycle monocle@1.1.51~postinstall: monocle@1.1.51
npm info lifecycle send@0.9.3~postinstall: send@0.9.3
npm info lifecycle crc@3.2.1~postinstall: crc@3.2.1
npm info lifecycle etag@1.5.1~postinstall: etag@1.5.1
npm info lifecycle source-map@0.1.34~postinstall: source-map@0.1.34
npm info lifecycle type-is@1.5.7~postinstall: type-is@1.5.7
npm info lifecycle uglify-to-browserify@1.0.2~postinstall: uglify-to-browserify@1.0.2
npm info lifecycle utils-merge@1.0.0~postinstall: utils-merge@1.0.0
npm info lifecycle serve-static@1.6.5~postinstall: serve-static@1.6.5
npm info lifecycle vary@1.0.1~postinstall: vary@1.0.1
npm info lifecycle void-elements@1.0.0~postinstall: void-elements@1.0.0
npm info lifecycle window-size@0.1.0~postinstall: window-size@0.1.0
npm info lifecycle wordwrap@0.0.2~postinstall: wordwrap@0.0.2
npm info lifecycle optimist@0.3.7~postinstall: optimist@0.3.7
npm info lifecycle uglify-js@2.2.5~postinstall: uglify-js@2.2.5
npm info lifecycle transformers@2.1.0~postinstall: transformers@2.1.0
npm info lifecycle yargs@3.5.4~postinstall: yargs@3.5.4
npm info lifecycle uglify-js@2.4.24~postinstall: uglify-js@2.4.24
npm info lifecycle constantinople@2.0.1~postinstall: constantinople@2.0.1
npm info lifecycle with@3.0.1~postinstall: with@3.0.1
npm info lifecycle body-parser@1.8.4~postinstall: body-parser@1.8.4
npm info lifecycle cookie-parser@1.3.5~postinstall: cookie-parser@1.3.5
npm info lifecycle express@4.9.8~postinstall: express@4.9.8
npm info lifecycle jade@1.6.0~postinstall: jade@1.6.0
npm info lifecycle morgan@1.3.2~postinstall: morgan@1.3.2
npm info lifecycle serve-favicon@2.1.7~postinstall: serve-favicon@2.1.7
npm info linkStuff scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~install: scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~postinstall: scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~prepublish: scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~prepare: scrapbook-node-docker-client-as-container@0.0.0
scrapbook-node-docker-client-as-container@0.0.0 /src/app
+-- body-parser@1.8.4
| +-- bytes@1.0.0
| +-- depd@0.4.5
| +-- iconv-lite@0.4.4
| +-- media-typer@0.3.0
| +-- on-finished@2.1.0
| | `-- ee-first@1.0.5
| +-- qs@2.2.4
| +-- raw-body@1.3.0
| `-- type-is@1.5.7
|   `-- mime-types@2.0.14
|     `-- mime-db@1.12.0
+-- cookie-parser@1.3.5
| +-- cookie@0.1.3
| `-- cookie-signature@1.0.6
+-- debug@2.0.0
| `-- ms@0.6.2
+-- express@4.9.8
| +-- accepts@1.1.4
| | `-- negotiator@0.4.9
| +-- cookie@0.1.2
| +-- cookie-signature@1.0.5
| +-- escape-html@1.0.1
| +-- etag@1.4.0
| | `-- crc@3.0.0
| +-- finalhandler@0.2.0
| +-- fresh@0.2.4
| +-- merge-descriptors@0.0.2
| +-- methods@1.1.0
| +-- parseurl@1.3.2
| +-- path-to-regexp@0.1.3
| +-- proxy-addr@1.0.10
| | +-- forwarded@0.1.2
| | `-- ipaddr.js@1.0.5
| +-- range-parser@1.0.3
| +-- send@0.9.3
| | +-- destroy@1.0.3
| | `-- mime@1.2.11
| +-- serve-static@1.6.5
| +-- utils-merge@1.0.0
| `-- vary@1.0.1
+-- jade@1.6.0
| +-- character-parser@1.2.0
| +-- commander@2.1.0
| +-- constantinople@2.0.1
| | `-- uglify-js@2.4.24
| |   +-- async@0.2.10
| |   +-- source-map@0.1.34
| |   | `-- amdefine@1.0.1
| |   +-- uglify-to-browserify@1.0.2
| |   `-- yargs@3.5.4
| |     +-- camelcase@1.2.1
| |     +-- decamelize@1.2.0
| |     +-- window-size@0.1.0
| |     `-- wordwrap@0.0.2
| +-- mkdirp@0.5.1
| | `-- minimist@0.0.8
| +-- monocle@1.1.51
| | `-- readdirp@0.2.5
| |   `-- minimatch@3.0.4
| |     `-- brace-expansion@1.1.11
| |       +-- balanced-match@1.0.0
| |       `-- concat-map@0.0.1
| +-- transformers@2.1.0
| | +-- css@1.0.8
| | | +-- css-parse@1.0.4
| | | `-- css-stringify@1.0.5
| | +-- promise@2.0.0
| | | `-- is-promise@1.0.1
| | `-- uglify-js@2.2.5
| |   `-- optimist@0.3.7
| +-- void-elements@1.0.0
| `-- with@3.0.1
+-- morgan@1.3.2
| `-- basic-auth@1.0.0
`-- serve-favicon@2.1.7
  `-- etag@1.5.1
    `-- crc@3.2.1

npm info ok
 ---> 7a17f55fb6e0
Removing intermediate container 1d2e77a9b249
Step 6/8 : COPY . /src/app
 ---> dae097e16e89
Step 7/8 : EXPOSE 3000
 ---> Running in 69451ea81d3b
 ---> ffe06a599af0
Removing intermediate container 69451ea81d3b
Step 8/8 : CMD npm start
 ---> Running in 453fcfbc9404
 ---> b3a2d064780c
Removing intermediate container 453fcfbc9404
Successfully built b3a2d064780c
Successfully tagged my-nodejs-app:latest
$
$
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS             NAMES
$ docker run -d --name my-running-app -p 3000:3000 my-nodejs-app
658a8234fdf3ee6969a7235988d291c6e2657401466a16c9bdb49d344c376bf3
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
658a8234fdf3        my-nodejs-app       "npm start"         6 seconds ago       Up 6 seconds        0.0.0.0:3000->3000/tcp   my-running-app
$ curl http://docker:3000
Express

Express

Welcome to Express$
Step 2/8 : RUN mkdir -p /src/app
 ---> Running in 5a4f62bfb8f2
 ---> f8dd0e425bd1
Removing intermediate container 5a4f62bfb8f2
Step 3/8 : WORKDIR /src/app
 ---> 52e7c1d3255e
Removing intermediate container e7a3af477422
Step 4/8 : COPY package.json /src/app/package.json
 ---> 24c05da0c257
Step 5/8 : RUN npm install
 ---> Running in 1d2e77a9b249
npm info it worked if it ends with ok
npm info using npm@4.2.0
npm info using node@v7.10.1
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/express
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/body-parser
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/cookie-parser
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/morgan
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/serve-favicon
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/debug
npm info attempt registry request try #1 at 8:08:54 PM
npm http request GET https://registry.npmjs.org/jade
npm http 200 https://registry.npmjs.org/cookie-parser
npm http 200 https://registry.npmjs.org/morgan
npm http 200 https://registry.npmjs.org/body-parser
npm http 200 https://registry.npmjs.org/serve-favicon
npm http 200 https://registry.npmjs.org/debug
npm http 200 https://registry.npmjs.org/jade
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/morgan/-/morgan-1.3.2.tgz
npm http 200 https://registry.npmjs.org/express
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/body-parser/-/body-parser-1.8.4.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz
npm http fetch 200 https://registry.npmjs.org/morgan/-/morgan-1.3.2.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.1.7.tgz
npm http fetch 200 https://registry.npmjs.org/body-parser/-/body-parser-1.8.4.tgz
npm http fetch 200 https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz
npm http fetch 200 https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.1.7.tgz
npm WARN deprecated jade@1.6.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/debug/-/debug-2.0.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/jade/-/jade-1.6.0.tgz
npm http fetch 200 https://registry.npmjs.org/debug/-/debug-2.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/jade/-/jade-1.6.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/express/-/express-4.9.8.tgz
npm http fetch 200 https://registry.npmjs.org/express/-/express-4.9.8.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/bytes
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/depd
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/iconv-lite
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/media-typer
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/on-finished
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/qs
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/raw-body
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/type-is
npm http 200 https://registry.npmjs.org/media-typer
npm http 200 https://registry.npmjs.org/on-finished
npm http 200 https://registry.npmjs.org/bytes
npm http 200 https://registry.npmjs.org/raw-body
npm http 200 https://registry.npmjs.org/depd
npm http 200 https://registry.npmjs.org/iconv-lite
npm http 200 https://registry.npmjs.org/qs
npm http 200 https://registry.npmjs.org/type-is
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/depd/-/depd-0.4.5.tgz
npm http fetch 200 https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz
npm http fetch 200 https://registry.npmjs.org/on-finished/-/on-finished-2.1.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz
npm http fetch 200 https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/qs/-/qs-2.2.4.tgz
npm http fetch 200 https://registry.npmjs.org/raw-body/-/raw-body-1.3.0.tgz
npm http fetch 200 https://registry.npmjs.org/depd/-/depd-0.4.5.tgz
npm http fetch 200 https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.4.tgz
npm http fetch 200 https://registry.npmjs.org/qs/-/qs-2.2.4.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz
npm http fetch 200 https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/ee-first
npm http 200 https://registry.npmjs.org/ee-first
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz
npm http fetch 200 https://registry.npmjs.org/ee-first/-/ee-first-1.0.5.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/mime-types
npm http 200 https://registry.npmjs.org/mime-types
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz
npm http fetch 200 https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/mime-db
npm http 200 https://registry.npmjs.org/mime-db
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz
npm http fetch 200 https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/cookie
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/cookie-signature
npm http 200 https://registry.npmjs.org/cookie-signature
npm http 200 https://registry.npmjs.org/cookie
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz
npm http fetch 200 https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz
npm http fetch 200 https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/ms
npm http 200 https://registry.npmjs.org/ms
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/ms/-/ms-0.6.2.tgz
npm http fetch 200 https://registry.npmjs.org/ms/-/ms-0.6.2.tgz
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/accepts
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/escape-html
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/etag
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/finalhandler
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/fresh
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/methods
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/parseurl
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/path-to-regexp
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/proxy-addr
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/range-parser
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/send
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/serve-static
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/vary
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/merge-descriptors
npm info attempt registry request try #1 at 8:08:55 PM
npm http request GET https://registry.npmjs.org/utils-merge
npm http 200 https://registry.npmjs.org/methods
npm http 200 https://registry.npmjs.org/escape-html
npm http 200 https://registry.npmjs.org/etag
npm http 200 https://registry.npmjs.org/parseurl
npm http 200 https://registry.npmjs.org/fresh
npm http 200 https://registry.npmjs.org/finalhandler
npm http 200 https://registry.npmjs.org/accepts
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz
npm http 200 https://registry.npmjs.org/proxy-addr
npm http 200 https://registry.npmjs.org/path-to-regexp
npm http fetch 200 https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz
npm http fetch 200 https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz
npm http 200 https://registry.npmjs.org/vary
npm http 200 https://registry.npmjs.org/range-parser
npm http 200 https://registry.npmjs.org/utils-merge
npm http 200 https://registry.npmjs.org/send
npm http 200 https://registry.npmjs.org/serve-static
npm http 200 https://registry.npmjs.org/merge-descriptors
npm info addNameTag [ 'parseurl', 'latest' ]
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/methods/-/methods-1.1.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/etag/-/etag-1.4.0.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz
npm info retry fetch attempt 1 at 8:08:55 PM
npm info attempt registry request try #1 at 8:08:55 PM
npm http fetch GET https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz
npm http fetch 200 https://registry.npmjs.org/methods/-/methods-1.1.0.tgz
npm http fetch 200 https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/finalhandler/-/finalhandler-0.2.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz
npm http fetch 200 https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz
npm http fetch 200 https://registry.npmjs.org/etag/-/etag-1.4.0.tgz
npm http fetch 200 https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz
npm http fetch 200 https://registry.npmjs.org/finalhandler/-/finalhandler-0.2.0.tgz
npm http fetch 200 https://registry.npmjs.org/accepts/-/accepts-1.1.4.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz
npm http fetch 200 https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/vary/-/vary-1.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/send/-/send-0.9.3.tgz
npm http fetch 200 https://registry.npmjs.org/vary/-/vary-1.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/serve-static/-/serve-static-1.6.5.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz
npm http fetch 200 https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz
npm http fetch 200 https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/send/-/send-0.9.3.tgz
npm http fetch 200 https://registry.npmjs.org/serve-static/-/serve-static-1.6.5.tgz
npm http fetch 200 https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/negotiator
npm http 200 https://registry.npmjs.org/negotiator
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz
npm http fetch 200 https://registry.npmjs.org/negotiator/-/negotiator-0.4.9.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/crc
npm http 200 https://registry.npmjs.org/crc
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/crc/-/crc-3.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/crc/-/crc-3.0.0.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/forwarded
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/ipaddr.js
npm http 200 https://registry.npmjs.org/forwarded
npm http 200 https://registry.npmjs.org/ipaddr.js
npm info addNameTag [ 'forwarded', 'latest' ]
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz
npm http fetch 200 https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz
npm http fetch 200 https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/destroy
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/mime
npm http 200 https://registry.npmjs.org/destroy
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz
npm http fetch 200 https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz
npm http 200 https://registry.npmjs.org/mime
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/mime/-/mime-1.2.11.tgz
npm http fetch 200 https://registry.npmjs.org/mime/-/mime-1.2.11.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/character-parser
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/commander
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/constantinople
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/mkdirp
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/monocle
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/transformers
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/void-elements
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/with
npm http 200 https://registry.npmjs.org/void-elements
npm http 200 https://registry.npmjs.org/constantinople
npm http 200 https://registry.npmjs.org/character-parser
npm http 200 https://registry.npmjs.org/with
npm http 200 https://registry.npmjs.org/mkdirp
npm http 200 https://registry.npmjs.org/transformers
npm http 200 https://registry.npmjs.org/monocle
npm http 200 https://registry.npmjs.org/commander
npm WARN deprecated constantinople@2.0.1: Please update to at least constantinople 3.1.1
npm info addNameTag [ 'mkdirp', 'latest' ]
npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/void-elements/-/void-elements-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/character-parser/-/character-parser-1.2.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/with/-/with-3.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/monocle/-/monocle-1.1.51.tgz
npm http fetch 200 https://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/void-elements/-/void-elements-1.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz
npm http fetch 200 https://registry.npmjs.org/character-parser/-/character-parser-1.2.0.tgz
npm http fetch 200 https://registry.npmjs.org/with/-/with-3.0.1.tgz
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/commander/-/commander-2.1.0.tgz
npm http fetch 200 https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz
npm http fetch 200 https://registry.npmjs.org/monocle/-/monocle-1.1.51.tgz
npm http fetch 200 https://registry.npmjs.org/commander/-/commander-2.1.0.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/uglify-js
npm http 200 https://registry.npmjs.org/uglify-js
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz
npm http fetch 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/async
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/source-map
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/uglify-to-browserify
npm info attempt registry request try #1 at 8:08:56 PM
npm http request GET https://registry.npmjs.org/yargs
npm http 200 https://registry.npmjs.org/uglify-to-browserify
npm http 200 https://registry.npmjs.org/async
npm http 200 https://registry.npmjs.org/source-map
npm http 200 https://registry.npmjs.org/yargs
npm info retry fetch attempt 1 at 8:08:56 PM
npm info attempt registry request try #1 at 8:08:56 PM
npm http fetch GET https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz
npm http fetch 200 https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/async/-/async-0.2.10.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz
npm http fetch 200 https://registry.npmjs.org/async/-/async-0.2.10.tgz
npm http fetch 200 https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz
npm http fetch 200 https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/amdefine
npm http 200 https://registry.npmjs.org/amdefine
npm info addNameTag [ 'amdefine', 'latest' ]
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/camelcase
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/decamelize
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/window-size
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/wordwrap
npm http 200 https://registry.npmjs.org/wordwrap
npm http 200 https://registry.npmjs.org/decamelize
npm http 200 https://registry.npmjs.org/camelcase
npm http 200 https://registry.npmjs.org/window-size
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz
npm http fetch 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz
npm http fetch 200 https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz
npm http fetch 200 https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz
npm http fetch 200 https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/minimist
npm http 200 https://registry.npmjs.org/minimist
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz
npm http fetch 200 https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/readdirp
npm http 200 https://registry.npmjs.org/readdirp
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz
npm http fetch 200 https://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/minimatch
npm http 200 https://registry.npmjs.org/minimatch
npm info addNameTag [ 'minimatch', 'latest' ]
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz
npm http fetch 200 https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/brace-expansion
npm http 200 https://registry.npmjs.org/brace-expansion
npm info addNameTag [ 'brace-expansion', 'latest' ]
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz
npm http fetch 200 https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/balanced-match
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/concat-map
npm http 200 https://registry.npmjs.org/balanced-match
npm http 200 https://registry.npmjs.org/concat-map
npm info addNameTag [ 'balanced-match', 'latest' ]
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/promise
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/css
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz
npm http 200 https://registry.npmjs.org/css
npm http 200 https://registry.npmjs.org/promise
npm http fetch 200 https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/css/-/css-1.0.8.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/promise/-/promise-2.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/css/-/css-1.0.8.tgz
npm http fetch 200 https://registry.npmjs.org/promise/-/promise-2.0.0.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/css-parse
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/css-stringify
npm http 200 https://registry.npmjs.org/css-parse
npm http 200 https://registry.npmjs.org/css-stringify
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz
npm http fetch 200 https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz
npm http fetch 200 https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/is-promise
npm http 200 https://registry.npmjs.org/is-promise
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz
npm http fetch 200 https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/optimist
npm http 200 https://registry.npmjs.org/optimist
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm http fetch 200 https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz
npm info attempt registry request try #1 at 8:08:57 PM
npm http request GET https://registry.npmjs.org/basic-auth
npm http 200 https://registry.npmjs.org/basic-auth
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz
npm http fetch 200 https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/etag/-/etag-1.5.1.tgz
npm http fetch 200 https://registry.npmjs.org/etag/-/etag-1.5.1.tgz
npm info retry fetch attempt 1 at 8:08:57 PM
npm info attempt registry request try #1 at 8:08:57 PM
npm http fetch GET https://registry.npmjs.org/crc/-/crc-3.2.1.tgz
npm http fetch 200 https://registry.npmjs.org/crc/-/crc-3.2.1.tgz
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~preinstall: scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle amdefine@1.0.1~preinstall: amdefine@1.0.1
npm info lifecycle async@0.2.10~preinstall: async@0.2.10
npm info lifecycle balanced-match@1.0.0~preinstall: balanced-match@1.0.0
npm info lifecycle basic-auth@1.0.0~preinstall: basic-auth@1.0.0
npm info lifecycle bytes@1.0.0~preinstall: bytes@1.0.0
npm info lifecycle camelcase@1.2.1~preinstall: camelcase@1.2.1
npm info lifecycle character-parser@1.2.0~preinstall: character-parser@1.2.0
npm info lifecycle commander@2.1.0~preinstall: commander@2.1.0
npm info lifecycle concat-map@0.0.1~preinstall: concat-map@0.0.1
npm info lifecycle brace-expansion@1.1.11~preinstall: brace-expansion@1.1.11
npm info lifecycle cookie@0.1.3~preinstall: cookie@0.1.3
npm info lifecycle cookie-signature@1.0.6~preinstall: cookie-signature@1.0.6
npm info lifecycle crc@3.0.0~preinstall: crc@3.0.0
npm info lifecycle css-parse@1.0.4~preinstall: css-parse@1.0.4
npm info lifecycle css-stringify@1.0.5~preinstall: css-stringify@1.0.5
npm info lifecycle css@1.0.8~preinstall: css@1.0.8
npm info lifecycle decamelize@1.2.0~preinstall: decamelize@1.2.0
npm info lifecycle depd@0.4.5~preinstall: depd@0.4.5
npm info lifecycle destroy@1.0.3~preinstall: destroy@1.0.3
npm info lifecycle ee-first@1.0.5~preinstall: ee-first@1.0.5
npm info lifecycle escape-html@1.0.1~preinstall: escape-html@1.0.1
npm info lifecycle etag@1.4.0~preinstall: etag@1.4.0
npm info lifecycle cookie@0.1.2~preinstall: cookie@0.1.2
npm info lifecycle cookie-signature@1.0.5~preinstall: cookie-signature@1.0.5
npm info lifecycle forwarded@0.1.2~preinstall: forwarded@0.1.2
npm info lifecycle fresh@0.2.4~preinstall: fresh@0.2.4
npm info lifecycle iconv-lite@0.4.4~preinstall: iconv-lite@0.4.4
npm info lifecycle ipaddr.js@1.0.5~preinstall: ipaddr.js@1.0.5
npm info lifecycle is-promise@1.0.1~preinstall: is-promise@1.0.1
npm info lifecycle media-typer@0.3.0~preinstall: media-typer@0.3.0
npm info lifecycle merge-descriptors@0.0.2~preinstall: merge-descriptors@0.0.2
npm info lifecycle methods@1.1.0~preinstall: methods@1.1.0
npm info lifecycle mime@1.2.11~preinstall: mime@1.2.11
npm info lifecycle mime-db@1.12.0~preinstall: mime-db@1.12.0
npm info lifecycle mime-types@2.0.14~preinstall: mime-types@2.0.14
npm info lifecycle minimatch@3.0.4~preinstall: minimatch@3.0.4
npm info lifecycle minimist@0.0.8~preinstall: minimist@0.0.8
npm info lifecycle mkdirp@0.5.1~preinstall: mkdirp@0.5.1
npm info lifecycle ms@0.6.2~preinstall: ms@0.6.2
npm info lifecycle debug@2.0.0~preinstall: debug@2.0.0
npm info lifecycle finalhandler@0.2.0~preinstall: finalhandler@0.2.0
npm info lifecycle negotiator@0.4.9~preinstall: negotiator@0.4.9
npm info lifecycle accepts@1.1.4~preinstall: accepts@1.1.4
npm info lifecycle on-finished@2.1.0~preinstall: on-finished@2.1.0
npm info lifecycle parseurl@1.3.2~preinstall: parseurl@1.3.2
npm info lifecycle path-to-regexp@0.1.3~preinstall: path-to-regexp@0.1.3
npm info lifecycle promise@2.0.0~preinstall: promise@2.0.0
npm info lifecycle proxy-addr@1.0.10~preinstall: proxy-addr@1.0.10
npm info lifecycle qs@2.2.4~preinstall: qs@2.2.4
npm info lifecycle range-parser@1.0.3~preinstall: range-parser@1.0.3
npm info lifecycle raw-body@1.3.0~preinstall: raw-body@1.3.0
npm info lifecycle readdirp@0.2.5~preinstall: readdirp@0.2.5
npm info lifecycle monocle@1.1.51~preinstall: monocle@1.1.51
npm info lifecycle send@0.9.3~preinstall: send@0.9.3
npm info lifecycle crc@3.2.1~preinstall: crc@3.2.1
npm info lifecycle etag@1.5.1~preinstall: etag@1.5.1
npm info lifecycle source-map@0.1.34~preinstall: source-map@0.1.34
npm info lifecycle type-is@1.5.7~preinstall: type-is@1.5.7
npm info lifecycle uglify-to-browserify@1.0.2~preinstall: uglify-to-browserify@1.0.2
npm info lifecycle utils-merge@1.0.0~preinstall: utils-merge@1.0.0
npm info lifecycle serve-static@1.6.5~preinstall: serve-static@1.6.5
npm info lifecycle vary@1.0.1~preinstall: vary@1.0.1
npm info lifecycle void-elements@1.0.0~preinstall: void-elements@1.0.0
npm info lifecycle window-size@0.1.0~preinstall: window-size@0.1.0
npm info lifecycle wordwrap@0.0.2~preinstall: wordwrap@0.0.2
npm info lifecycle optimist@0.3.7~preinstall: optimist@0.3.7
npm info lifecycle uglify-js@2.2.5~preinstall: uglify-js@2.2.5
npm info lifecycle transformers@2.1.0~preinstall: transformers@2.1.0
npm info lifecycle yargs@3.5.4~preinstall: yargs@3.5.4
npm info lifecycle uglify-js@2.4.24~preinstall: uglify-js@2.4.24
npm info lifecycle constantinople@2.0.1~preinstall: constantinople@2.0.1
npm info lifecycle with@3.0.1~preinstall: with@3.0.1
npm info lifecycle body-parser@1.8.4~preinstall: body-parser@1.8.4
npm info lifecycle cookie-parser@1.3.5~preinstall: cookie-parser@1.3.5
npm info lifecycle express@4.9.8~preinstall: express@4.9.8
npm info lifecycle jade@1.6.0~preinstall: jade@1.6.0
npm info lifecycle morgan@1.3.2~preinstall: morgan@1.3.2
npm info lifecycle serve-favicon@2.1.7~preinstall: serve-favicon@2.1.7
npm info linkStuff amdefine@1.0.1
npm info linkStuff async@0.2.10
npm info linkStuff balanced-match@1.0.0
npm info linkStuff basic-auth@1.0.0
npm info linkStuff bytes@1.0.0
npm info linkStuff camelcase@1.2.1
npm info linkStuff character-parser@1.2.0
npm info linkStuff commander@2.1.0
npm info linkStuff concat-map@0.0.1
npm info linkStuff brace-expansion@1.1.11
npm info linkStuff cookie@0.1.3
npm info linkStuff cookie-signature@1.0.6
npm info linkStuff crc@3.0.0
npm info linkStuff css-parse@1.0.4
npm info linkStuff css-stringify@1.0.5
npm info linkStuff css@1.0.8
npm info linkStuff decamelize@1.2.0
npm info linkStuff depd@0.4.5
npm info linkStuff destroy@1.0.3
npm info linkStuff ee-first@1.0.5
npm info linkStuff escape-html@1.0.1
npm info linkStuff etag@1.4.0
npm info linkStuff cookie@0.1.2
npm info linkStuff cookie-signature@1.0.5
npm info linkStuff forwarded@0.1.2
npm info linkStuff fresh@0.2.4
npm info linkStuff iconv-lite@0.4.4
npm info linkStuff ipaddr.js@1.0.5
npm info linkStuff is-promise@1.0.1
npm info linkStuff media-typer@0.3.0
npm info linkStuff merge-descriptors@0.0.2
npm info linkStuff methods@1.1.0
npm info linkStuff mime@1.2.11
npm info linkStuff mime-db@1.12.0
npm info linkStuff mime-types@2.0.14
npm info linkStuff minimatch@3.0.4
npm info linkStuff minimist@0.0.8
npm info linkStuff mkdirp@0.5.1
npm info linkStuff ms@0.6.2
npm info linkStuff debug@2.0.0
npm info linkStuff finalhandler@0.2.0
npm info linkStuff negotiator@0.4.9
npm info linkStuff accepts@1.1.4
npm info linkStuff on-finished@2.1.0
npm info linkStuff parseurl@1.3.2
npm info linkStuff path-to-regexp@0.1.3
npm info linkStuff promise@2.0.0
npm info linkStuff proxy-addr@1.0.10
npm info linkStuff qs@2.2.4
npm info linkStuff range-parser@1.0.3
npm info linkStuff raw-body@1.3.0
npm info linkStuff readdirp@0.2.5
npm info linkStuff monocle@1.1.51
npm info linkStuff send@0.9.3
npm info linkStuff crc@3.2.1
npm info linkStuff etag@1.5.1
npm info linkStuff source-map@0.1.34
npm info linkStuff type-is@1.5.7
npm info linkStuff uglify-to-browserify@1.0.2
npm info linkStuff utils-merge@1.0.0
npm info linkStuff serve-static@1.6.5
npm info linkStuff vary@1.0.1
npm info linkStuff void-elements@1.0.0
npm info linkStuff window-size@0.1.0
npm info linkStuff wordwrap@0.0.2
npm info linkStuff optimist@0.3.7
npm info linkStuff uglify-js@2.2.5
npm info linkStuff transformers@2.1.0
npm info linkStuff yargs@3.5.4
npm info linkStuff uglify-js@2.4.24
npm info linkStuff constantinople@2.0.1
npm info linkStuff with@3.0.1
npm info linkStuff body-parser@1.8.4
npm info linkStuff cookie-parser@1.3.5
npm info linkStuff express@4.9.8
npm info linkStuff jade@1.6.0
npm info linkStuff morgan@1.3.2
npm info linkStuff serve-favicon@2.1.7
npm info lifecycle amdefine@1.0.1~install: amdefine@1.0.1
npm info lifecycle async@0.2.10~install: async@0.2.10
npm info lifecycle balanced-match@1.0.0~install: balanced-match@1.0.0
npm info lifecycle basic-auth@1.0.0~install: basic-auth@1.0.0
npm info lifecycle bytes@1.0.0~install: bytes@1.0.0
npm info lifecycle camelcase@1.2.1~install: camelcase@1.2.1
npm info lifecycle character-parser@1.2.0~install: character-parser@1.2.0
npm info lifecycle commander@2.1.0~install: commander@2.1.0
npm info lifecycle concat-map@0.0.1~install: concat-map@0.0.1
npm info lifecycle brace-expansion@1.1.11~install: brace-expansion@1.1.11
npm info lifecycle cookie@0.1.3~install: cookie@0.1.3
npm info lifecycle cookie-signature@1.0.6~install: cookie-signature@1.0.6
npm info lifecycle crc@3.0.0~install: crc@3.0.0
npm info lifecycle css-parse@1.0.4~install: css-parse@1.0.4
npm info lifecycle css-stringify@1.0.5~install: css-stringify@1.0.5
npm info lifecycle css@1.0.8~install: css@1.0.8
npm info lifecycle decamelize@1.2.0~install: decamelize@1.2.0
npm info lifecycle depd@0.4.5~install: depd@0.4.5
npm info lifecycle destroy@1.0.3~install: destroy@1.0.3
npm info lifecycle ee-first@1.0.5~install: ee-first@1.0.5
npm info lifecycle escape-html@1.0.1~install: escape-html@1.0.1
npm info lifecycle etag@1.4.0~install: etag@1.4.0
npm info lifecycle cookie@0.1.2~install: cookie@0.1.2
npm info lifecycle cookie-signature@1.0.5~install: cookie-signature@1.0.5
npm info lifecycle forwarded@0.1.2~install: forwarded@0.1.2
npm info lifecycle fresh@0.2.4~install: fresh@0.2.4
npm info lifecycle iconv-lite@0.4.4~install: iconv-lite@0.4.4
npm info lifecycle ipaddr.js@1.0.5~install: ipaddr.js@1.0.5
npm info lifecycle is-promise@1.0.1~install: is-promise@1.0.1
npm info lifecycle media-typer@0.3.0~install: media-typer@0.3.0
npm info lifecycle merge-descriptors@0.0.2~install: merge-descriptors@0.0.2
npm info lifecycle methods@1.1.0~install: methods@1.1.0
npm info lifecycle mime@1.2.11~install: mime@1.2.11
npm info lifecycle mime-db@1.12.0~install: mime-db@1.12.0
npm info lifecycle mime-types@2.0.14~install: mime-types@2.0.14
npm info lifecycle minimatch@3.0.4~install: minimatch@3.0.4
npm info lifecycle minimist@0.0.8~install: minimist@0.0.8
npm info lifecycle mkdirp@0.5.1~install: mkdirp@0.5.1
npm info lifecycle ms@0.6.2~install: ms@0.6.2
npm info lifecycle debug@2.0.0~install: debug@2.0.0
npm info lifecycle finalhandler@0.2.0~install: finalhandler@0.2.0
npm info lifecycle negotiator@0.4.9~install: negotiator@0.4.9
npm info lifecycle accepts@1.1.4~install: accepts@1.1.4
npm info lifecycle on-finished@2.1.0~install: on-finished@2.1.0
npm info lifecycle parseurl@1.3.2~install: parseurl@1.3.2
npm info lifecycle path-to-regexp@0.1.3~install: path-to-regexp@0.1.3
npm info lifecycle promise@2.0.0~install: promise@2.0.0
npm info lifecycle proxy-addr@1.0.10~install: proxy-addr@1.0.10
npm info lifecycle qs@2.2.4~install: qs@2.2.4
npm info lifecycle range-parser@1.0.3~install: range-parser@1.0.3
npm info lifecycle raw-body@1.3.0~install: raw-body@1.3.0
npm info lifecycle readdirp@0.2.5~install: readdirp@0.2.5
npm info lifecycle monocle@1.1.51~install: monocle@1.1.51
npm info lifecycle send@0.9.3~install: send@0.9.3
npm info lifecycle crc@3.2.1~install: crc@3.2.1
npm info lifecycle etag@1.5.1~install: etag@1.5.1
npm info lifecycle source-map@0.1.34~install: source-map@0.1.34
npm info lifecycle type-is@1.5.7~install: type-is@1.5.7
npm info lifecycle uglify-to-browserify@1.0.2~install: uglify-to-browserify@1.0.2
npm info lifecycle utils-merge@1.0.0~install: utils-merge@1.0.0
npm info lifecycle serve-static@1.6.5~install: serve-static@1.6.5
npm info lifecycle vary@1.0.1~install: vary@1.0.1
npm info lifecycle void-elements@1.0.0~install: void-elements@1.0.0
npm info lifecycle window-size@0.1.0~install: window-size@0.1.0
npm info lifecycle wordwrap@0.0.2~install: wordwrap@0.0.2
npm info lifecycle optimist@0.3.7~install: optimist@0.3.7
npm info lifecycle uglify-js@2.2.5~install: uglify-js@2.2.5
npm info lifecycle transformers@2.1.0~install: transformers@2.1.0
npm info lifecycle yargs@3.5.4~install: yargs@3.5.4
npm info lifecycle uglify-js@2.4.24~install: uglify-js@2.4.24
npm info lifecycle constantinople@2.0.1~install: constantinople@2.0.1
npm info lifecycle with@3.0.1~install: with@3.0.1
npm info lifecycle body-parser@1.8.4~install: body-parser@1.8.4
npm info lifecycle cookie-parser@1.3.5~install: cookie-parser@1.3.5
npm info lifecycle express@4.9.8~install: express@4.9.8
npm info lifecycle jade@1.6.0~install: jade@1.6.0
npm info lifecycle morgan@1.3.2~install: morgan@1.3.2
npm info lifecycle serve-favicon@2.1.7~install: serve-favicon@2.1.7
npm info lifecycle amdefine@1.0.1~postinstall: amdefine@1.0.1
npm info lifecycle async@0.2.10~postinstall: async@0.2.10
npm info lifecycle balanced-match@1.0.0~postinstall: balanced-match@1.0.0
npm info lifecycle basic-auth@1.0.0~postinstall: basic-auth@1.0.0
npm info lifecycle bytes@1.0.0~postinstall: bytes@1.0.0
npm info lifecycle camelcase@1.2.1~postinstall: camelcase@1.2.1
npm info lifecycle character-parser@1.2.0~postinstall: character-parser@1.2.0
npm info lifecycle commander@2.1.0~postinstall: commander@2.1.0
npm info lifecycle concat-map@0.0.1~postinstall: concat-map@0.0.1
npm info lifecycle brace-expansion@1.1.11~postinstall: brace-expansion@1.1.11
npm info lifecycle cookie@0.1.3~postinstall: cookie@0.1.3
npm info lifecycle cookie-signature@1.0.6~postinstall: cookie-signature@1.0.6
npm info lifecycle crc@3.0.0~postinstall: crc@3.0.0
npm info lifecycle css-parse@1.0.4~postinstall: css-parse@1.0.4
npm info lifecycle css-stringify@1.0.5~postinstall: css-stringify@1.0.5
npm info lifecycle css@1.0.8~postinstall: css@1.0.8
npm info lifecycle decamelize@1.2.0~postinstall: decamelize@1.2.0
npm info lifecycle depd@0.4.5~postinstall: depd@0.4.5
npm info lifecycle destroy@1.0.3~postinstall: destroy@1.0.3
npm info lifecycle ee-first@1.0.5~postinstall: ee-first@1.0.5
npm info lifecycle escape-html@1.0.1~postinstall: escape-html@1.0.1
npm info lifecycle etag@1.4.0~postinstall: etag@1.4.0
npm info lifecycle cookie@0.1.2~postinstall: cookie@0.1.2
npm info lifecycle cookie-signature@1.0.5~postinstall: cookie-signature@1.0.5
npm info lifecycle forwarded@0.1.2~postinstall: forwarded@0.1.2
npm info lifecycle fresh@0.2.4~postinstall: fresh@0.2.4
npm info lifecycle iconv-lite@0.4.4~postinstall: iconv-lite@0.4.4
npm info lifecycle ipaddr.js@1.0.5~postinstall: ipaddr.js@1.0.5
npm info lifecycle is-promise@1.0.1~postinstall: is-promise@1.0.1
npm info lifecycle media-typer@0.3.0~postinstall: media-typer@0.3.0
npm info lifecycle merge-descriptors@0.0.2~postinstall: merge-descriptors@0.0.2
npm info lifecycle methods@1.1.0~postinstall: methods@1.1.0
npm info lifecycle mime@1.2.11~postinstall: mime@1.2.11
npm info lifecycle mime-db@1.12.0~postinstall: mime-db@1.12.0
npm info lifecycle mime-types@2.0.14~postinstall: mime-types@2.0.14
npm info lifecycle minimatch@3.0.4~postinstall: minimatch@3.0.4
npm info lifecycle minimist@0.0.8~postinstall: minimist@0.0.8
npm info lifecycle mkdirp@0.5.1~postinstall: mkdirp@0.5.1
npm info lifecycle ms@0.6.2~postinstall: ms@0.6.2
npm info lifecycle debug@2.0.0~postinstall: debug@2.0.0
npm info lifecycle finalhandler@0.2.0~postinstall: finalhandler@0.2.0
npm info lifecycle negotiator@0.4.9~postinstall: negotiator@0.4.9
npm info lifecycle accepts@1.1.4~postinstall: accepts@1.1.4
npm info lifecycle on-finished@2.1.0~postinstall: on-finished@2.1.0
npm info lifecycle parseurl@1.3.2~postinstall: parseurl@1.3.2
npm info lifecycle path-to-regexp@0.1.3~postinstall: path-to-regexp@0.1.3
npm info lifecycle promise@2.0.0~postinstall: promise@2.0.0
npm info lifecycle proxy-addr@1.0.10~postinstall: proxy-addr@1.0.10
npm info lifecycle qs@2.2.4~postinstall: qs@2.2.4
npm info lifecycle range-parser@1.0.3~postinstall: range-parser@1.0.3
npm info lifecycle raw-body@1.3.0~postinstall: raw-body@1.3.0
npm info lifecycle readdirp@0.2.5~postinstall: readdirp@0.2.5
npm info lifecycle monocle@1.1.51~postinstall: monocle@1.1.51
npm info lifecycle send@0.9.3~postinstall: send@0.9.3
npm info lifecycle crc@3.2.1~postinstall: crc@3.2.1
npm info lifecycle etag@1.5.1~postinstall: etag@1.5.1
npm info lifecycle source-map@0.1.34~postinstall: source-map@0.1.34
npm info lifecycle type-is@1.5.7~postinstall: type-is@1.5.7
npm info lifecycle uglify-to-browserify@1.0.2~postinstall: uglify-to-browserify@1.0.2
npm info lifecycle utils-merge@1.0.0~postinstall: utils-merge@1.0.0
npm info lifecycle serve-static@1.6.5~postinstall: serve-static@1.6.5
npm info lifecycle vary@1.0.1~postinstall: vary@1.0.1
npm info lifecycle void-elements@1.0.0~postinstall: void-elements@1.0.0
npm info lifecycle window-size@0.1.0~postinstall: window-size@0.1.0
npm info lifecycle wordwrap@0.0.2~postinstall: wordwrap@0.0.2
npm info lifecycle optimist@0.3.7~postinstall: optimist@0.3.7
npm info lifecycle uglify-js@2.2.5~postinstall: uglify-js@2.2.5
npm info lifecycle transformers@2.1.0~postinstall: transformers@2.1.0
npm info lifecycle yargs@3.5.4~postinstall: yargs@3.5.4
npm info lifecycle uglify-js@2.4.24~postinstall: uglify-js@2.4.24
npm info lifecycle constantinople@2.0.1~postinstall: constantinople@2.0.1
npm info lifecycle with@3.0.1~postinstall: with@3.0.1
npm info lifecycle body-parser@1.8.4~postinstall: body-parser@1.8.4
npm info lifecycle cookie-parser@1.3.5~postinstall: cookie-parser@1.3.5
npm info lifecycle express@4.9.8~postinstall: express@4.9.8
npm info lifecycle jade@1.6.0~postinstall: jade@1.6.0
npm info lifecycle morgan@1.3.2~postinstall: morgan@1.3.2
npm info lifecycle serve-favicon@2.1.7~postinstall: serve-favicon@2.1.7
npm info linkStuff scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~install: scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~postinstall: scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~prepublish: scrapbook-node-docker-client-as-container@0.0.0
npm info lifecycle scrapbook-node-docker-client-as-container@0.0.0~prepare: scrapbook-node-docker-client-as-container@0.0.0
scrapbook-node-docker-client-as-container@0.0.0 /src/app
+-- body-parser@1.8.4
| +-- bytes@1.0.0
| +-- depd@0.4.5
| +-- iconv-lite@0.4.4
| +-- media-typer@0.3.0
| +-- on-finished@2.1.0
| | `-- ee-first@1.0.5
| +-- qs@2.2.4
| +-- raw-body@1.3.0
| `-- type-is@1.5.7
|   `-- mime-types@2.0.14
|     `-- mime-db@1.12.0
+-- cookie-parser@1.3.5
| +-- cookie@0.1.3
| `-- cookie-signature@1.0.6
+-- debug@2.0.0
| `-- ms@0.6.2
+-- express@4.9.8
| +-- accepts@1.1.4
| | `-- negotiator@0.4.9
| +-- cookie@0.1.2
| +-- cookie-signature@1.0.5
| +-- escape-html@1.0.1
| +-- etag@1.4.0
| | `-- crc@3.0.0
| +-- finalhandler@0.2.0
| +-- fresh@0.2.4
| +-- merge-descriptors@0.0.2
| +-- methods@1.1.0
| +-- parseurl@1.3.2
| +-- path-to-regexp@0.1.3
| +-- proxy-addr@1.0.10
| | +-- forwarded@0.1.2
| | `-- ipaddr.js@1.0.5
| +-- range-parser@1.0.3
| +-- send@0.9.3
| | +-- destroy@1.0.3
| | `-- mime@1.2.11
| +-- serve-static@1.6.5
| +-- utils-merge@1.0.0
| `-- vary@1.0.1
+-- jade@1.6.0
| +-- character-parser@1.2.0
| +-- commander@2.1.0
| +-- constantinople@2.0.1
| | `-- uglify-js@2.4.24
| |   +-- async@0.2.10
| |   +-- source-map@0.1.34
| |   | `-- amdefine@1.0.1
| |   +-- uglify-to-browserify@1.0.2
| |   `-- yargs@3.5.4
| |     +-- camelcase@1.2.1
| |     +-- decamelize@1.2.0
| |     +-- window-size@0.1.0
| |     `-- wordwrap@0.0.2
| +-- mkdirp@0.5.1
| | `-- minimist@0.0.8
| +-- monocle@1.1.51
| | `-- readdirp@0.2.5
| |   `-- minimatch@3.0.4
| |     `-- brace-expansion@1.1.11
| |       +-- balanced-match@1.0.0
| |       `-- concat-map@0.0.1
| +-- transformers@2.1.0
| | +-- css@1.0.8
| | | +-- css-parse@1.0.4
| | | `-- css-stringify@1.0.5
| | +-- promise@2.0.0
| | | `-- is-promise@1.0.1
| | `-- uglify-js@2.2.5
| |   `-- optimist@0.3.7
| +-- void-elements@1.0.0
| `-- with@3.0.1
+-- morgan@1.3.2
| `-- basic-auth@1.0.0
`-- serve-favicon@2.1.7
  `-- etag@1.5.1
    `-- crc@3.2.1

npm info ok
 ---> 7a17f55fb6e0
Removing intermediate container 1d2e77a9b249
Step 6/8 : COPY . /src/app
 ---> dae097e16e89
Step 7/8 : EXPOSE 3000
 ---> Running in 69451ea81d3b
 ---> ffe06a599af0
Removing intermediate container 69451ea81d3b
Step 8/8 : CMD npm start
 ---> Running in 453fcfbc9404
 ---> b3a2d064780c
Removing intermediate container 453fcfbc9404
Successfully built b3a2d064780c
Successfully tagged my-nodejs-app:latest
$
$
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS             NAMES
$ docker run -d --name my-running-app -p 3000:3000 my-nodejs-app
658a8234fdf3ee6969a7235988d291c6e2657401466a16c9bdb49d344c376bf3
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                  NAMES
658a8234fdf3        my-nodejs-app       "npm start"         6 seconds ago       Up 6 seconds        0.0.0.0:3000->3000/tcp   my-running-app
$ curl http://docker:3000
Express

Express

Welcome to Express$

Installing Ingress Controller - Kubernetes

Installing the Ingress Controller Prerequisites Make sure you have access to the Ingress controller image: For NGINX Ingress controll...