├── .gitignore ├── html-js-app ├── Dockerfile ├── images │ └── docker.png ├── index.html └── README.md ├── node-js-app ├── Dockerfile ├── package.json ├── README.md ├── app.js └── package-lock.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /html-js-app/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:latest 2 | 3 | COPY . /usr/share/nginx/html 4 | -------------------------------------------------------------------------------- /html-js-app/images/docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aamirpinger/docker-slide-code/HEAD/html-js-app/images/docker.png -------------------------------------------------------------------------------- /node-js-app/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine 2 | LABEL maintainer="aamirpinger@yahoo.com" 3 | RUN apk add --update nodejs nodejs-npm 4 | COPY . /src 5 | WORKDIR /src 6 | RUN npm install 7 | ENV CREATEDBY="Aamir Pinger" 8 | EXPOSE 8080 9 | ENTRYPOINT ["node", "./app.js"] 10 | -------------------------------------------------------------------------------- /html-js-app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/node-js-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sample-node-js-app",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "app.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "express": "^4.16.4"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/node-js-app/README.md:
--------------------------------------------------------------------------------
1 | # To containerize this app, follow these steps
2 |
3 | ### Make sure you are in node-js-app folder on your system
4 |
5 | ```
6 | docker build -t node-app-image .
7 | ```
8 | ```
9 | docker container run --name=first-node-cont -d -p 8550:8080 node-app-image
10 | ```
11 | ## That's it!!! now click on following
12 |
13 | http://localhost:8550
14 |
15 |
--------------------------------------------------------------------------------
/html-js-app/README.md:
--------------------------------------------------------------------------------
1 | # To containerize this app, follow these steps
2 |
3 | ### Make sure you are in html-js-app folder on your system
4 |
5 | ```
6 | docker build -t first-docker-app .
7 | ```
8 | ```
9 | docker container run --name=first-docker-cont -d -p 8500:80 first-docker-app
10 |
11 | ```
12 | ## That's it!!! now click on following
13 |
14 | http://localhost:8500
15 |
--------------------------------------------------------------------------------
/node-js-app/app.js:
--------------------------------------------------------------------------------
1 | const express = require('express')
2 | const app = express()
3 |
4 | const port = 8080
5 | const createdBy = process.env.CREATEDBY
6 |
7 | app.get('/', function(req, res){
8 | res.send('This is a example of NODE JS containerize app, created by ' + createdBy)
9 | })
10 |
11 | app.listen(port, () => {
12 | console.log("server is up, check http://localhost:" + port)
13 | })
14 |
15 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Docker-slide-code
2 |
3 | This repo contain basic web application folders to use for practicing Dockers for containerizing app
4 |
5 | ## Follow the following steps
6 |
7 | ### If you don't have git installed on your system, follow the following steps in Terminal/Shell
8 | ```
9 | sudo apt-get update
10 | ```
11 | ```
12 | sudo apt-get upgrade
13 | ```
14 | ```
15 | sudo apt-get install git
16 | ```
17 | ### Once you have installed Git, follow the following steps
18 |
19 | ```
20 | git clone https://github.com/aamirpinger/docker-slide-code.git
21 | ```
22 | ```
23 | ls
24 | ```
25 | ```
26 | cd docker-slide-code/
27 | ```
28 | ```
29 | ls
30 | ```
31 |
32 | ### Now you can see that different folder have been cloned on your system, go to any folder and follow instruction from README file inside each folder
33 |
34 | `cd html-js-app` **OR** `cd node-js-app`
35 |
--------------------------------------------------------------------------------
/node-js-app/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "sample-node-js-app",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "accepts": {
8 | "version": "1.3.7",
9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
10 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
11 | "requires": {
12 | "mime-types": "~2.1.24",
13 | "negotiator": "0.6.2"
14 | }
15 | },
16 | "array-flatten": {
17 | "version": "1.1.1",
18 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
19 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
20 | },
21 | "body-parser": {
22 | "version": "1.18.3",
23 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
24 | "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
25 | "requires": {
26 | "bytes": "3.0.0",
27 | "content-type": "~1.0.4",
28 | "debug": "2.6.9",
29 | "depd": "~1.1.2",
30 | "http-errors": "~1.6.3",
31 | "iconv-lite": "0.4.23",
32 | "on-finished": "~2.3.0",
33 | "qs": "6.5.2",
34 | "raw-body": "2.3.3",
35 | "type-is": "~1.6.16"
36 | }
37 | },
38 | "bytes": {
39 | "version": "3.0.0",
40 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
41 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
42 | },
43 | "content-disposition": {
44 | "version": "0.5.2",
45 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
46 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
47 | },
48 | "content-type": {
49 | "version": "1.0.4",
50 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
51 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
52 | },
53 | "cookie": {
54 | "version": "0.3.1",
55 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
56 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
57 | },
58 | "cookie-signature": {
59 | "version": "1.0.6",
60 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
61 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
62 | },
63 | "debug": {
64 | "version": "2.6.9",
65 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
66 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
67 | "requires": {
68 | "ms": "2.0.0"
69 | }
70 | },
71 | "depd": {
72 | "version": "1.1.2",
73 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
74 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
75 | },
76 | "destroy": {
77 | "version": "1.0.4",
78 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
79 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
80 | },
81 | "ee-first": {
82 | "version": "1.1.1",
83 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
84 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
85 | },
86 | "encodeurl": {
87 | "version": "1.0.2",
88 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
89 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
90 | },
91 | "escape-html": {
92 | "version": "1.0.3",
93 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
94 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
95 | },
96 | "etag": {
97 | "version": "1.8.1",
98 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
99 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
100 | },
101 | "express": {
102 | "version": "4.16.4",
103 | "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
104 | "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
105 | "requires": {
106 | "accepts": "~1.3.5",
107 | "array-flatten": "1.1.1",
108 | "body-parser": "1.18.3",
109 | "content-disposition": "0.5.2",
110 | "content-type": "~1.0.4",
111 | "cookie": "0.3.1",
112 | "cookie-signature": "1.0.6",
113 | "debug": "2.6.9",
114 | "depd": "~1.1.2",
115 | "encodeurl": "~1.0.2",
116 | "escape-html": "~1.0.3",
117 | "etag": "~1.8.1",
118 | "finalhandler": "1.1.1",
119 | "fresh": "0.5.2",
120 | "merge-descriptors": "1.0.1",
121 | "methods": "~1.1.2",
122 | "on-finished": "~2.3.0",
123 | "parseurl": "~1.3.2",
124 | "path-to-regexp": "0.1.7",
125 | "proxy-addr": "~2.0.4",
126 | "qs": "6.5.2",
127 | "range-parser": "~1.2.0",
128 | "safe-buffer": "5.1.2",
129 | "send": "0.16.2",
130 | "serve-static": "1.13.2",
131 | "setprototypeof": "1.1.0",
132 | "statuses": "~1.4.0",
133 | "type-is": "~1.6.16",
134 | "utils-merge": "1.0.1",
135 | "vary": "~1.1.2"
136 | }
137 | },
138 | "finalhandler": {
139 | "version": "1.1.1",
140 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
141 | "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
142 | "requires": {
143 | "debug": "2.6.9",
144 | "encodeurl": "~1.0.2",
145 | "escape-html": "~1.0.3",
146 | "on-finished": "~2.3.0",
147 | "parseurl": "~1.3.2",
148 | "statuses": "~1.4.0",
149 | "unpipe": "~1.0.0"
150 | }
151 | },
152 | "forwarded": {
153 | "version": "0.1.2",
154 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
155 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
156 | },
157 | "fresh": {
158 | "version": "0.5.2",
159 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
160 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
161 | },
162 | "http-errors": {
163 | "version": "1.6.3",
164 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
165 | "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
166 | "requires": {
167 | "depd": "~1.1.2",
168 | "inherits": "2.0.3",
169 | "setprototypeof": "1.1.0",
170 | "statuses": ">= 1.4.0 < 2"
171 | }
172 | },
173 | "iconv-lite": {
174 | "version": "0.4.23",
175 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
176 | "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
177 | "requires": {
178 | "safer-buffer": ">= 2.1.2 < 3"
179 | }
180 | },
181 | "inherits": {
182 | "version": "2.0.3",
183 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
184 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
185 | },
186 | "ipaddr.js": {
187 | "version": "1.9.0",
188 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
189 | "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
190 | },
191 | "media-typer": {
192 | "version": "0.3.0",
193 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
194 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
195 | },
196 | "merge-descriptors": {
197 | "version": "1.0.1",
198 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
199 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
200 | },
201 | "methods": {
202 | "version": "1.1.2",
203 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
204 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
205 | },
206 | "mime": {
207 | "version": "1.4.1",
208 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
209 | "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
210 | },
211 | "mime-db": {
212 | "version": "1.40.0",
213 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
214 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
215 | },
216 | "mime-types": {
217 | "version": "2.1.24",
218 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
219 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
220 | "requires": {
221 | "mime-db": "1.40.0"
222 | }
223 | },
224 | "ms": {
225 | "version": "2.0.0",
226 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
227 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
228 | },
229 | "negotiator": {
230 | "version": "0.6.2",
231 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
232 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
233 | },
234 | "on-finished": {
235 | "version": "2.3.0",
236 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
237 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
238 | "requires": {
239 | "ee-first": "1.1.1"
240 | }
241 | },
242 | "parseurl": {
243 | "version": "1.3.3",
244 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
245 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
246 | },
247 | "path-to-regexp": {
248 | "version": "0.1.7",
249 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
250 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
251 | },
252 | "proxy-addr": {
253 | "version": "2.0.5",
254 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
255 | "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
256 | "requires": {
257 | "forwarded": "~0.1.2",
258 | "ipaddr.js": "1.9.0"
259 | }
260 | },
261 | "qs": {
262 | "version": "6.5.2",
263 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
264 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
265 | },
266 | "range-parser": {
267 | "version": "1.2.1",
268 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
269 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
270 | },
271 | "raw-body": {
272 | "version": "2.3.3",
273 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
274 | "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
275 | "requires": {
276 | "bytes": "3.0.0",
277 | "http-errors": "1.6.3",
278 | "iconv-lite": "0.4.23",
279 | "unpipe": "1.0.0"
280 | }
281 | },
282 | "safe-buffer": {
283 | "version": "5.1.2",
284 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
285 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
286 | },
287 | "safer-buffer": {
288 | "version": "2.1.2",
289 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
290 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
291 | },
292 | "send": {
293 | "version": "0.16.2",
294 | "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
295 | "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
296 | "requires": {
297 | "debug": "2.6.9",
298 | "depd": "~1.1.2",
299 | "destroy": "~1.0.4",
300 | "encodeurl": "~1.0.2",
301 | "escape-html": "~1.0.3",
302 | "etag": "~1.8.1",
303 | "fresh": "0.5.2",
304 | "http-errors": "~1.6.2",
305 | "mime": "1.4.1",
306 | "ms": "2.0.0",
307 | "on-finished": "~2.3.0",
308 | "range-parser": "~1.2.0",
309 | "statuses": "~1.4.0"
310 | }
311 | },
312 | "serve-static": {
313 | "version": "1.13.2",
314 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
315 | "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
316 | "requires": {
317 | "encodeurl": "~1.0.2",
318 | "escape-html": "~1.0.3",
319 | "parseurl": "~1.3.2",
320 | "send": "0.16.2"
321 | }
322 | },
323 | "setprototypeof": {
324 | "version": "1.1.0",
325 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
326 | "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
327 | },
328 | "statuses": {
329 | "version": "1.4.0",
330 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
331 | "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
332 | },
333 | "type-is": {
334 | "version": "1.6.18",
335 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
336 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
337 | "requires": {
338 | "media-typer": "0.3.0",
339 | "mime-types": "~2.1.24"
340 | }
341 | },
342 | "unpipe": {
343 | "version": "1.0.0",
344 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
345 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
346 | },
347 | "utils-merge": {
348 | "version": "1.0.1",
349 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
350 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
351 | },
352 | "vary": {
353 | "version": "1.1.2",
354 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
355 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
356 | }
357 | }
358 | }
359 |
--------------------------------------------------------------------------------