build: add recommended config files for VSCode remote development (#30450)

Add some recommended config files to use (as is or as basis) for setting
up [remote development using docker containers][1] with VSCode. This is
an opt-in feature. See `.devcontainer/README.md` for more info.

The configuration can be further tweaked/improved, but is a good
starting point.

[1]: https://code.visualstudio.com/docs/remote/containers

PR Close #30450
This commit is contained in:
George Kalpakas 2019-05-14 11:48:16 +03:00 committed by Jason Aden
parent 6454f76cf6
commit f78bda9ff0
5 changed files with 45 additions and 1 deletions

View File

@ -0,0 +1,22 @@
# Image metadata and config.
FROM circleci/node:10-browsers
LABEL name="Angular dev environment" \
description="This image can be used to create a dev environment for building Angular." \
vendor="angular" \
version="1.0"
EXPOSE 4000 4200 4433 5000 8080 9876
# Switch to `root` (CircleCI images use `circleci` as the user).
USER root
# Configure `Node.js`/`npm` and install utilities.
RUN npm config --global set user root
RUN npm install --global yarn@1.13.0 # This needs to be in sync with what we use on CI.
# Go! (And keep going.)
CMD ["tail", "--follow", "/dev/null"]

View File

@ -0,0 +1,16 @@
// Reference: https://code.visualstudio.com/docs/remote/containers#_devcontainerjson-reference
{
"name": "Angular dev container",
"dockerFile": "Dockerfile",
"appPort": [4000, 4200, 4433, 5000, 8080, 9876],
"postCreateCommand": "yarn install",
"extensions": [
"devondcarew.bazel-code",
"gkalpak.aio-docs-utils",
"ms-vscode.vscode-typescript-tslint-plugin",
"xaver.clang-format",
// The following extensions are useful when working on angular.io (i.e. inside the `aio/` directory).
//"angular.ng-template",
//"dbaeumer.vscode-eslint",
],
}

1
.github/CODEOWNERS vendored
View File

@ -855,6 +855,7 @@ testing/** @angular/fw-test
/.buildkite/** @angular/fw-dev-infra /.buildkite/** @angular/fw-dev-infra
/.circleci/** @angular/fw-dev-infra /.circleci/** @angular/fw-dev-infra
/.codefresh/** @angular/fw-dev-infra /.codefresh/** @angular/fw-dev-infra
/.devcontainer/** @angular/fw-dev-infra
/.github/** @angular/fw-dev-infra /.github/** @angular/fw-dev-infra
/.vscode/** @angular/fw-dev-infra /.vscode/** @angular/fw-dev-infra
/docs/BAZEL.md @angular/fw-dev-infra /docs/BAZEL.md @angular/fw-dev-infra

4
.gitignore vendored
View File

@ -11,7 +11,9 @@ tools/gulp-tasks/cldr/cldr-data/
pubspec.lock pubspec.lock
.c9 .c9
.idea/ .idea/
.devcontainer .devcontainer/*
!.devcontainer/recommended-devcontainer.json
!.devcontainer/recommended-Dockerfile
.settings/ .settings/
.vscode/launch.json .vscode/launch.json
.vscode/settings.json .vscode/settings.json

View File

@ -8,5 +8,8 @@
"gkalpak.aio-docs-utils", "gkalpak.aio-docs-utils",
"ms-vscode.vscode-typescript-tslint-plugin", "ms-vscode.vscode-typescript-tslint-plugin",
"xaver.clang-format", "xaver.clang-format",
// The following extensions are useful when working on angular.io (i.e. inside the `aio/` directory).
//"angular.ng-template",
//"dbaeumer.vscode-eslint",
], ],
} }