A function could be written to apply list of mixins in one shot.
```
const applyMixins = (object, ...mixins) => mixins.forEach(m => m(object));
```
The way of creating mixins would remain the same underneath though. This library relies on a function call to create a mixin so that a WeakSet is created. This WeakSet is needed to keep a record of objects the mixin is later applied to.
This article has some problems. For example, you do not need to add a new user. The node image provides a user called "node" for you:
https://github.com/nodejs/docker-node/blob/b3ca6573b5c179148b446107386ae96ac6204ad3/8/Dockerfile#L3
Another issue is SIGTERM handling. Your node app needs to listen for SIGTERM events from the process object, and perform a graceful shutdown when it receives one. Without this Docker or Kubernetes will wait for some time (the app won't understand SIGTERM without explicit handling) and then kill the container with no grace at all.
This title is a little misleading. 10 is to be released shortly (not quite yet, but today). However, the v10 line won't be LTS until October. Until then this is just considered stable, and 8 remains LTS.