From 30dae5adfc8a50e4c1cfb4cb2ec5758a9e59f22e Mon Sep 17 00:00:00 2001 From: Chuck Lantz Date: Thu, 21 Mar 2019 13:46:33 -0700 Subject: [PATCH] Restructure pass 3 --- README.md | 33 +- .../.vscode/devContainer.json | 14 +- .../.vscodeignore | 0 .../dev-container.dockerfile | 52 +- definitions/dart-web/test-project/README.md | 4 - definitions/go/dev-container.dockerfile | 2 +- .../node-8-mongo/.vscode/devContainer.json | 11 + .../node-8-mongo/dev-container.dockerfile | 13 + .../docker-compose.dev-container.yml | 21 + .../node-8-mongo/test-project}/.gitignore | 0 .../node-8-mongo/test-project/Dockerfile | 5 + .../test-project/docker-compose.yml | 17 + .../test-project}/package-lock.json | 0 .../node-8-mongo/test-project}/package.json | 0 .../node-8-mongo/test-project}/server.js | 0 definitions/node-8/.vscode/devContainer.json | 8 + .../{node => node-8}/.vscode/launch.json | 26 +- definitions/{node => node-8}/.vscodeignore | 0 definitions/node-8/dev-container.dockerfile | 13 + .../test-project/.eslintrc.json | 42 +- .../test-project/package-lock.json | 716 +++++++++--------- .../test-project/package.json | 26 +- .../{node => node-8}/test-project/server.js | 40 +- definitions/node/.vscode/devContainer.json | 8 - definitions/rust/dev-container.dockerfile | 2 +- .../.vscode/devContainer.json | 9 - samples/docker-compose-node/Dockerfile | 5 - .../dev-container.dockerfile | 7 - .../docker-compose.dev-container.yml | 13 - .../docker-compose-node/docker-compose.yml | 6 - 30 files changed, 575 insertions(+), 518 deletions(-) rename definitions/{azure-functions-node => azure-functions-node-8}/.vscode/devContainer.json (95%) rename definitions/{azure-functions-node => azure-functions-node-8}/.vscodeignore (100%) rename definitions/{azure-functions-node => azure-functions-node-8}/dev-container.dockerfile (96%) delete mode 100644 definitions/dart-web/test-project/README.md create mode 100644 definitions/node-8-mongo/.vscode/devContainer.json create mode 100644 definitions/node-8-mongo/dev-container.dockerfile create mode 100644 definitions/node-8-mongo/docker-compose.dev-container.yml rename {samples/docker-compose-node => definitions/node-8-mongo/test-project}/.gitignore (100%) create mode 100644 definitions/node-8-mongo/test-project/Dockerfile create mode 100644 definitions/node-8-mongo/test-project/docker-compose.yml rename {samples/docker-compose-node => definitions/node-8-mongo/test-project}/package-lock.json (100%) rename {samples/docker-compose-node => definitions/node-8-mongo/test-project}/package.json (100%) rename {samples/docker-compose-node => definitions/node-8-mongo/test-project}/server.js (100%) create mode 100644 definitions/node-8/.vscode/devContainer.json rename definitions/{node => node-8}/.vscode/launch.json (96%) rename definitions/{node => node-8}/.vscodeignore (100%) create mode 100644 definitions/node-8/dev-container.dockerfile rename definitions/{node => node-8}/test-project/.eslintrc.json (93%) rename definitions/{node => node-8}/test-project/package-lock.json (97%) rename definitions/{node => node-8}/test-project/package.json (95%) rename definitions/{node => node-8}/test-project/server.js (86%) delete mode 100644 definitions/node/.vscode/devContainer.json delete mode 100644 samples/docker-compose-node/.vscode/devContainer.json delete mode 100644 samples/docker-compose-node/Dockerfile delete mode 100644 samples/docker-compose-node/dev-container.dockerfile delete mode 100644 samples/docker-compose-node/docker-compose.dev-container.yml delete mode 100644 samples/docker-compose-node/docker-compose.yml diff --git a/README.md b/README.md index d9b9a40c2d..cdbaf554cc 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,32 @@ -# Development Containers +# Visual Studio Code Remote Development Container Definitions -See [headless-containers](https://github.com/Microsoft/vscode-docs-pr/blob/master/docs/headless/headless-containers.md). +A **development container** is a running Docker container that comes with a basic tool stack (Python, node, Go, etc.) and its prerequisites (e.g. `pylint` for Python). This container may be used to actually run an application or be focused exclusively on sandboxing tools, libraries, runtimes, or other utilities that need to be run against a codebase. -# Extension Authors +Visual Studio Code Remote allows you to open any folder inside (or mounted into) a dev container and take advantage of VS Code's full feature set. When using the capability, VS Code selectively runs certain extensions in the container to optimize your experience. The result is that VS Code can provide a local-quality development experience including full IntelliSense, debugging, and more regardless of where your code is located. -See [headless-extensions](https://github.com/Microsoft/vscode-docs-pr/blob/master/docs/headless/headless-extensions.md). +**[See here to learn more about VS Code Remote](https://aka.ms/vscode-remote)**. -# Reporting Issues +This repository contains a set of **dev container definition** files such as `devContainer.json` that can be added to existing projects to quickly get up and running inside a containerized environment. + +## Trying a definition + +1. Check out the README for the definition folder under `definitions` to see if there are any manual steps +2. Clone this repository or copy the contents of the folder to your machine +3. Run the **Remote: Open Folder in Container...** command in VS Code +4. Select the definition folder + +Many definitions come with a `test-project` that you can use to see everything working. + +## Using a definition + +Run the **Remote: Create Container Configuration File...** command in VS Code or manually copy the contents of one of the `definitions` sub-folders into your project. + +When manually copying, note that some definitions contain a `test-project`, `.vscode/launch.json`, `.vscode/settings.json` or `.vscode/tasks.json` file that can be omitted. + +## Contents + +- `definitions` - Dev container definition folders. +- `definitions-templates` - Templates for creating your own container definitions in your project or for contributing back to this repository. + +## Contributing -When reporting issues please file them against the https://github.com/Microsoft/vscode-remote/issues repository. diff --git a/definitions/azure-functions-node/.vscode/devContainer.json b/definitions/azure-functions-node-8/.vscode/devContainer.json similarity index 95% rename from definitions/azure-functions-node/.vscode/devContainer.json rename to definitions/azure-functions-node-8/.vscode/devContainer.json index 99f3e0f62e..c4631df698 100644 --- a/definitions/azure-functions-node/.vscode/devContainer.json +++ b/definitions/azure-functions-node-8/.vscode/devContainer.json @@ -1,8 +1,8 @@ -{ - "name": "Azure Functions & Node.js", - "dockerFile": "dev-container.dockerfile", - "appPort": 7071, - "extensions": [ - "ms-azuretools.vscode-azurefunctions" - ] +{ + "name": "Azure Functions & Node.js", + "dockerFile": "dev-container.dockerfile", + "appPort": 7071, + "extensions": [ + "ms-azuretools.vscode-azurefunctions" + ] } \ No newline at end of file diff --git a/definitions/azure-functions-node/.vscodeignore b/definitions/azure-functions-node-8/.vscodeignore similarity index 100% rename from definitions/azure-functions-node/.vscodeignore rename to definitions/azure-functions-node-8/.vscodeignore diff --git a/definitions/azure-functions-node/dev-container.dockerfile b/definitions/azure-functions-node-8/dev-container.dockerfile similarity index 96% rename from definitions/azure-functions-node/dev-container.dockerfile rename to definitions/azure-functions-node-8/dev-container.dockerfile index 02f6356c6a..638d729487 100644 --- a/definitions/azure-functions-node/dev-container.dockerfile +++ b/definitions/azure-functions-node-8/dev-container.dockerfile @@ -1,26 +1,26 @@ -FROM microsoft/dotnet:2.1-sdk-stretch - -# Install git -RUN apt-get update && apt-get -y install git - -# Install Node.js -RUN apt-get install -y curl \ - && curl -sSL https://deb.nodesource.com/setup_8.x | bash - \ - && apt-get update \ - && apt-get install -y nodejs - -# Install Azure Functions -RUN apt-get install -y apt-transport-https \ - && curl -sSO https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb \ - && dpkg -i packages-microsoft-prod.deb \ - && rm packages-microsoft-prod.deb \ - && apt-get update \ - && apt-get download azure-functions-core-tools \ - && dpkg -i --force-depends azure-functions-core-tools*.deb \ - && rm azure-functions-core-tools*.deb - -# Clean up -RUN apt-get autoremove -y \ - && apt-get clean -y \ - && apt-get autoclean -y \ - && rm -rf /var/lib/apt/lists/* +FROM microsoft/dotnet:2.1-sdk-stretch + +# Install git +RUN apt-get update && apt-get -y install git + +# Install Node.js +RUN apt-get install -y curl \ + && curl -sSL https://deb.nodesource.com/setup_8.x | bash - \ + && apt-get update \ + && apt-get install -y nodejs + +# Install Azure Functions +RUN apt-get install -y apt-transport-https \ + && curl -sSO https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb \ + && dpkg -i packages-microsoft-prod.deb \ + && rm packages-microsoft-prod.deb \ + && apt-get update \ + && apt-get download azure-functions-core-tools \ + && dpkg -i --force-depends azure-functions-core-tools*.deb \ + && rm azure-functions-core-tools*.deb + +# Clean up +RUN apt-get autoremove -y \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rf /var/lib/apt/lists/* diff --git a/definitions/dart-web/test-project/README.md b/definitions/dart-web/test-project/README.md deleted file mode 100644 index 0dd3b612f3..0000000000 --- a/definitions/dart-web/test-project/README.md +++ /dev/null @@ -1,4 +0,0 @@ -An absolute bare-bones web app. - -Created from templates made available by Stagehand under a BSD-style -[license](https://github.com/dart-lang/stagehand/blob/master/LICENSE). diff --git a/definitions/go/dev-container.dockerfile b/definitions/go/dev-container.dockerfile index d7e22d6582..9987e3ef2c 100644 --- a/definitions/go/dev-container.dockerfile +++ b/definitions/go/dev-container.dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.11.1 +FROM golang:1 RUN go get -u -v \ github.com/mdempsky/gocode \ diff --git a/definitions/node-8-mongo/.vscode/devContainer.json b/definitions/node-8-mongo/.vscode/devContainer.json new file mode 100644 index 0000000000..7640ce5b3e --- /dev/null +++ b/definitions/node-8-mongo/.vscode/devContainer.json @@ -0,0 +1,11 @@ +{ + "name": "Node.js & Mongo DB", + "dockerComposeFile": "docker-compose.dev-container.yml", + "appPort": 3000, + "devPort": 8000, + "service": "app", + "volume": "app", + "extensions": [ + "dbaeumer.vscode-eslint" + ] +} \ No newline at end of file diff --git a/definitions/node-8-mongo/dev-container.dockerfile b/definitions/node-8-mongo/dev-container.dockerfile new file mode 100644 index 0000000000..ec56605c31 --- /dev/null +++ b/definitions/node-8-mongo/dev-container.dockerfile @@ -0,0 +1,13 @@ +FROM node:8-slim + +# Install git +RUN apt-get update && apt-get -y install git + +# Install eslint +RUN npm install -g eslint + +# Clean up +RUN apt-get autoremove -y \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rf /var/lib/apt/lists/* diff --git a/definitions/node-8-mongo/docker-compose.dev-container.yml b/definitions/node-8-mongo/docker-compose.dev-container.yml new file mode 100644 index 0000000000..ad1e89b033 --- /dev/null +++ b/definitions/node-8-mongo/docker-compose.dev-container.yml @@ -0,0 +1,21 @@ +version: '3' +services: + app: + build: + context: . + dockerfile: dev-container.dockerfile + ports: + - "3000:3000" + - "8000:8000" + volumes: + - .:/app + command: sleep infinity + links: + - mongo + mongo: + image: mongo + ports: + - "27017:27017" + volumes: + - /data/db + diff --git a/samples/docker-compose-node/.gitignore b/definitions/node-8-mongo/test-project/.gitignore similarity index 100% rename from samples/docker-compose-node/.gitignore rename to definitions/node-8-mongo/test-project/.gitignore diff --git a/definitions/node-8-mongo/test-project/Dockerfile b/definitions/node-8-mongo/test-project/Dockerfile new file mode 100644 index 0000000000..d465ed7bf6 --- /dev/null +++ b/definitions/node-8-mongo/test-project/Dockerfile @@ -0,0 +1,5 @@ +FROM node:8 +ADD . /app +WORKDIR /app +RUN npm install +CMD ["node", "server.js"] \ No newline at end of file diff --git a/definitions/node-8-mongo/test-project/docker-compose.yml b/definitions/node-8-mongo/test-project/docker-compose.yml new file mode 100644 index 0000000000..0f3ecf7b68 --- /dev/null +++ b/definitions/node-8-mongo/test-project/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3' +services: + app: + build: + context: . + dockerfile: Dockerfile + ports: + - "3000:3000" + links: + - mongo + mongo: + image: mongo + ports: + - "27017:27017" + volumes: + - /data/db + diff --git a/samples/docker-compose-node/package-lock.json b/definitions/node-8-mongo/test-project/package-lock.json similarity index 100% rename from samples/docker-compose-node/package-lock.json rename to definitions/node-8-mongo/test-project/package-lock.json diff --git a/samples/docker-compose-node/package.json b/definitions/node-8-mongo/test-project/package.json similarity index 100% rename from samples/docker-compose-node/package.json rename to definitions/node-8-mongo/test-project/package.json diff --git a/samples/docker-compose-node/server.js b/definitions/node-8-mongo/test-project/server.js similarity index 100% rename from samples/docker-compose-node/server.js rename to definitions/node-8-mongo/test-project/server.js diff --git a/definitions/node-8/.vscode/devContainer.json b/definitions/node-8/.vscode/devContainer.json new file mode 100644 index 0000000000..2f1f164fca --- /dev/null +++ b/definitions/node-8/.vscode/devContainer.json @@ -0,0 +1,8 @@ +{ + "name": "Node.js 8", + "dockerFile": "dev-container.dockerfile", + "appPort": 3000, + "extensions": [ + "dbaeumer.vscode-eslint" + ] +} \ No newline at end of file diff --git a/definitions/node/.vscode/launch.json b/definitions/node-8/.vscode/launch.json similarity index 96% rename from definitions/node/.vscode/launch.json rename to definitions/node-8/.vscode/launch.json index 0718c0a993..e3a593ee4b 100644 --- a/definitions/node/.vscode/launch.json +++ b/definitions/node-8/.vscode/launch.json @@ -1,14 +1,14 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Launch Program", - "program": "${workspaceFolder}/test-project/server.js" - } - ] +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Program", + "program": "${workspaceFolder}/test-project/server.js" + } + ] } \ No newline at end of file diff --git a/definitions/node/.vscodeignore b/definitions/node-8/.vscodeignore similarity index 100% rename from definitions/node/.vscodeignore rename to definitions/node-8/.vscodeignore diff --git a/definitions/node-8/dev-container.dockerfile b/definitions/node-8/dev-container.dockerfile new file mode 100644 index 0000000000..ec56605c31 --- /dev/null +++ b/definitions/node-8/dev-container.dockerfile @@ -0,0 +1,13 @@ +FROM node:8-slim + +# Install git +RUN apt-get update && apt-get -y install git + +# Install eslint +RUN npm install -g eslint + +# Clean up +RUN apt-get autoremove -y \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rf /var/lib/apt/lists/* diff --git a/definitions/node/test-project/.eslintrc.json b/definitions/node-8/test-project/.eslintrc.json similarity index 93% rename from definitions/node/test-project/.eslintrc.json rename to definitions/node-8/test-project/.eslintrc.json index 40d30cacff..6144597b52 100644 --- a/definitions/node/test-project/.eslintrc.json +++ b/definitions/node-8/test-project/.eslintrc.json @@ -1,21 +1,21 @@ -{ - "root": true, - "env": { - "node": true, - "es6": true - }, - "rules": { - "no-console": 0, - "eqeqeq":"warn", - "no-cond-assign": 0, - "no-unused-vars": 1, - "no-extra-semi": "warn", - "semi": "warn" - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaFeatures": { - "experimentalObjectRestSpread": true - } - } -} +{ + "root": true, + "env": { + "node": true, + "es6": true + }, + "rules": { + "no-console": 0, + "eqeqeq":"warn", + "no-cond-assign": 0, + "no-unused-vars": 1, + "no-extra-semi": "warn", + "semi": "warn" + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaFeatures": { + "experimentalObjectRestSpread": true + } + } +} diff --git a/definitions/node/test-project/package-lock.json b/definitions/node-8/test-project/package-lock.json similarity index 97% rename from definitions/node/test-project/package-lock.json rename to definitions/node-8/test-project/package-lock.json index b1e1be4c68..e3f729212c 100644 --- a/definitions/node/test-project/package-lock.json +++ b/definitions/node-8/test-project/package-lock.json @@ -1,358 +1,358 @@ -{ - "name": "docker_web_app", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "body-parser": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", - "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", - "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", - "qs": "6.5.2", - "raw-body": "2.3.3", - "type-is": "~1.6.16" - } - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.16.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", - "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", - "requires": { - "accepts": "~1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.3", - "content-disposition": "0.5.2", - "content-type": "~1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.4", - "qs": "6.5.2", - "range-parser": "~1.2.0", - "safe-buffer": "5.1.2", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "http-errors": { - "version": "1.6.3", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" - }, - "mime-db": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" - }, - "mime-types": { - "version": "2.1.21", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "requires": { - "mime-db": "~1.37.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - } - } -} +{ + "name": "docker_web_app", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "requires": { + "mime-db": "~1.37.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } +} diff --git a/definitions/node/test-project/package.json b/definitions/node-8/test-project/package.json similarity index 95% rename from definitions/node/test-project/package.json rename to definitions/node-8/test-project/package.json index 6af247df9e..95a6970e93 100644 --- a/definitions/node/test-project/package.json +++ b/definitions/node-8/test-project/package.json @@ -1,13 +1,13 @@ -{ - "name": "docker_web_app", - "version": "1.0.0", - "description": "Node.js on Docker", - "author": "First Last ", - "main": "server.js", - "scripts": { - "start": "node server.js" - }, - "dependencies": { - "express": "^4.16.1" - } -} +{ + "name": "docker_web_app", + "version": "1.0.0", + "description": "Node.js on Docker", + "author": "First Last ", + "main": "server.js", + "scripts": { + "start": "node server.js" + }, + "dependencies": { + "express": "^4.16.1" + } +} diff --git a/definitions/node/test-project/server.js b/definitions/node-8/test-project/server.js similarity index 86% rename from definitions/node/test-project/server.js rename to definitions/node-8/test-project/server.js index bcfd6c4484..b5af7b695a 100644 --- a/definitions/node/test-project/server.js +++ b/definitions/node-8/test-project/server.js @@ -1,21 +1,21 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -'use strict'; - -const express = require('express'); - -// Constants -const PORT = 8090; -const HOST = '0.0.0.0'; - -// App -const app = express(); -app.get('/', (req, res) => { - res.send('Hello world\n'); -}); - -app.listen(PORT, HOST); +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +'use strict'; + +const express = require('express'); + +// Constants +const PORT = 3000; +const HOST = '0.0.0.0'; + +// App +const app = express(); +app.get('/', (req, res) => { + res.send('Hello world\n'); +}); + +app.listen(PORT, HOST); console.log(`Running on http://${HOST}:${PORT}`); \ No newline at end of file diff --git a/definitions/node/.vscode/devContainer.json b/definitions/node/.vscode/devContainer.json deleted file mode 100644 index 03fea488bb..0000000000 --- a/definitions/node/.vscode/devContainer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Node.js", - "image": "chrmarti/node", - "appPort": 8090, - "extensions": [ - "dbaeumer.vscode-eslint" - ] -} \ No newline at end of file diff --git a/definitions/rust/dev-container.dockerfile b/definitions/rust/dev-container.dockerfile index 084b94d8bd..1e6918e81b 100644 --- a/definitions/rust/dev-container.dockerfile +++ b/definitions/rust/dev-container.dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.32 +FROM rust:1 RUN rustup update RUN rustup component add rls rust-analysis rust-src diff --git a/samples/docker-compose-node/.vscode/devContainer.json b/samples/docker-compose-node/.vscode/devContainer.json deleted file mode 100644 index ed5bfca9c3..0000000000 --- a/samples/docker-compose-node/.vscode/devContainer.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "Node.js", - "dockerComposeFile": "docker-compose.develop.yml", - "service": "web", - "volume": "app", - "extensions": [ - "dbaeumer.vscode-eslint" - ] -} \ No newline at end of file diff --git a/samples/docker-compose-node/Dockerfile b/samples/docker-compose-node/Dockerfile deleted file mode 100644 index dd5c76aa8d..0000000000 --- a/samples/docker-compose-node/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM node:8 -ADD . /code -WORKDIR /code -RUN npm install -CMD ["node", "server.js"] \ No newline at end of file diff --git a/samples/docker-compose-node/dev-container.dockerfile b/samples/docker-compose-node/dev-container.dockerfile deleted file mode 100644 index f64d41dfd8..0000000000 --- a/samples/docker-compose-node/dev-container.dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM node:8 - -RUN npm install -g eslint - -# Install git -RUN apt-get update && apt-get -y install git \ - && rm -rf /var/lib/apt/lists/* \ No newline at end of file diff --git a/samples/docker-compose-node/docker-compose.dev-container.yml b/samples/docker-compose-node/docker-compose.dev-container.yml deleted file mode 100644 index a16e00c3b7..0000000000 --- a/samples/docker-compose-node/docker-compose.dev-container.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: '3' -services: - web: - build: - context: . - dockerfile: dev-container.dockerfile - ports: - - "8090:8090" - - "8000:8000" - volumes: - - .:/app - command: /bin/sh -c "while :; do sleep 5000; done" - diff --git a/samples/docker-compose-node/docker-compose.yml b/samples/docker-compose-node/docker-compose.yml deleted file mode 100644 index 5483264912..0000000000 --- a/samples/docker-compose-node/docker-compose.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: '3' -services: - web: - build: . - ports: - - "8090:8090" \ No newline at end of file