46fe8fb8b4
This has a couple benefits: - we now use a .bazelversion file rather than package.json to pin the version of bazel we want. This means even if you install bazel on your computer rather than via yarn, you'll still get a warning if your bazel version is wrong. - you no longer end up downloading three copies of bazel due to bugs in both npm and yarn where they download all tarballs before checking the metadata to see which are usable on the local platform. - bazelisk correctly handles the tools/bazel trick for wrapping functionality, which we want to use to instrument developer build latencies PR Close #36078 |
||
---|---|---|
.. | ||
Dockerfile | ||
README.md | ||
publish.sh |
README.md
ngcontainer
This docker container provides everything needed to build and test Angular applications:
Note: This docker image will be no longer actively updated. Consider using other Docker images that come with Node installed.
- node 10.9.0
- npm 6.2.0
- yarn 1.9.2
- Java 8 (for Closure Compiler and Bazel)
- Bazel build tool v0.18.0 - http://bazel.build
- Google Chrome 69.0.3497.81
- Mozilla Firefox 47.0.1
- xvfb (virtual framebuffer) for headless testing
- Brotli compression utility, making smaller files than gzip
By using this, you avoid installation steps in your CI scripts and get a more consistent dev environment.
Example
See https://github.com/angular/closure-demo/blob/master/.circleci/config.yml where this container is used in CircleCI.
To run locally:
$ docker run -it --rm angular/ngcontainer
Running tests
Any program that needs to talk to a browser (eg. protractor) should be run under xvfb when executing on a headless machine like on CI. The nice way to factor this is to have your top-level test command which you run locally:
$ yarn test
Then in your CI configuration, you'd run
$ xvfb-run -a yarn test
For Developers
Install Docker on your machine in order to build/pull/push this image.
Get the teamangular password from http://valentine and log in:
$ docker login
Publish a new version:
$ tools/ngcontainer/publish.sh [tag eg. 0.2.3]