- validation script used unmaintained npm package
- switched to actively maintained package from same maintainer
- pipe full output to stdout
- bump node major version in development backend Dockerfile
- fix two api spec errors and two random warnings - boyscout, hell yeah
With the proposed changes the time required to run `./bin/compose setup`
is being reduced from ~18 minutes down to ~7 minutes on my machine.
In addition a workaround is applied to reduce the size of the images.
== Changes
=== Speed-Up `bundle install`
The time spent withing `bundle install` takes a significant amount time
during the `./bin/compose setup`.
We could make use of two improvements, which both allows us to
utitlize multiple CPU cures:
* Make use of the bundle `--jobs` argument
* Make use of the lesser known/used `MAKE` environment variable
A significant amount of time spent during `bundle install` is actually
compiling C-extensions, that's why the usage of the `MAKE` variable will
drastically improve performence.
=== `useradd --no-log-init`
Unfortunately there is a nasty bug when running `useradd` for a huge
`uid`, which could result in excessive image sizes. See attached links
for more information.
=== BuildKit
BuildKit is the default builder toolkit for Docker on Windows and
DockerDesktop on Macs. Using BuildKit will greatly improve performance
when building docker images.
== Links
=== Speed-Up `bundle install`
* [One Weird Trick That Will Speed Up Your Bundle Install](https://build.betterup.com/one-weird-trick-that-will-speed-up-your-bundle-install/)
=== BuildKit
* [Build images with BuildKit](https://docs.docker.com/develop/develop-images/build_enhancements/)
* [Faster builds in Docker Compose 1.25.1 thanks to BuildKit Support](https://www.docker.com/blog/faster-builds-in-compose-thanks-to-buildkit-support/)
=== `useradd --no-log-init`
* Best practices for writing Dockerfiles: [User](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user)
* golang/co: [archive/tar: add support for writing tar containing sparse files](https://github.com/golang/go/issues/13548)
* docker dev and test setup fixes
* added missing >
* include test instructions in quickstart
* fixed typo
Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>
* removed obsolete comment
Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>
* amendments
Co-authored-by: Benjamin Bädorf <b.baedorf@openproject.com>
Co-authored-by: Philipp Tessenow <tessi@bitcrowd.net>