Improve on the build process of the docker image
-
caching layers for multi-stage build -
The build process of the docker image can be accelerated by caching layers for multi-stage build: https://testdriven.io/blog/faster-ci-builds-with-docker-cache/ TLDR: Each stage needs to be built (using --target ...
) and pushed separately. -
The building of "node" stage should be independent of the "python" stage. -
Many steps can be grouped together to avoid a lot of tiny layers -
installing python packages without versioning is useless because the setup.py script will uninstall most of them and replace them with a versioned package from the requirements.txt -
As far as I know there are more modern ways to handle requirements (citation needed) -
mismatch in node versions (build:14.8 vs final 16.) -
Consider (no hard feelings about this😄 ) building separate images (still using the single Dockerfile but with multiple targets) for separate services (GUI, worker, north). -
Inconsistent package versions during installation (closes: #934 (closed)) -
Creating of a docker image for the development as mentioned in #989 (closed)
Edited by Adam Fekete