There is an issue that the Docker containers cannot modify the
files on KEYMAN_ROOT, since the user running build and tests on
Docker does not have the same gid and uid as the host user starting
the container.
The issue is solved by temporarily changing the uid and gid to
match the container user's uid and gid.
Test-bot: skip
Build-bot: skip
This fixes a permission problem when we run docker from git bash.
On Windows we want to build as _root_ inside of the docker container.
This gives the necessary permissions due to the way the Windows user
is mapped to git bash/mingw and the docker container. On Linux
however we want to build as _build_ user inside the container so that
files we create are owned by the host user.
See https://github.com/keymanapp/keyman/pull/14154#issuecomment-2970577312
for further explanation.
This change verifies that `docker buildx` is available and then uses that
for building the images. For that we apparently need the magic line at
the top of the `Dockerfile`s and set the environment variable
`DOCKER_BUILDKIT`. This solves a problem building docker images on
Linux with an older Docker version where the heredocs didn't work.
Also add test action to build.sh which builds all images and then tests
them by running configure,build,test on each.
Also add new dependencies to web image which Playwright requires.
- use KEYMAN_USE_NVM and KEYMAN_USE_EMSDK
- pre-install node (where necessary) to prevent having to do it on each
build
- adjust to current `master`
- fix a few bugs in the Dockerfile
- get required node version from package.json (through
`shellHelperFunctions.sh`)