RHDH is currently only available for amd64/x86_64.
If you want an image that runs on Mac M1 (arm64/aarch64) or another architecture, you will need to build it yourself.
This folder contains the Containerfile used in Konflux downstream for RHDH builds.
It requires hermeto to cache dependencies (rpm, pip, yarn) before the build can proceed, so that the build is reproduceable/offline/hermetically sealed.
Note that some things in this repo are changed when they’re synced to downstream. See build/ci/sync-midstream.sh. Note: RH VPN required.
Depending on what you’re trying to accomplish you have some options:
-
Use the local-hermeto-build.sh script to build the image locally.
This script will do the following:
-
creates a hermeto cache folder in the
./hermeto-cachefolder -
generates a transformed Containerfile that uses the hermeto cache (injects the cachi2 env variables to every RUN command, and configures dnf, pip and yarn to use the cachi2 repo. See Generating Environment Variables for more information.)
-
builds the image using the transformed Containerfile
# create the hermeto cache and build the image using the hermeto cache # Run the script from the root of the repository. ./scripts/local-hermeto-build.sh -d . -i image:tag
Things to note before running the script:
-
After running the script to build the cache (if --no-cache is not specified), you should revert any changes done to the `python/requirements*.txt\` files before running the script again. This is because the generation of the hermeto cache will modify the `plantuml-markdown @ https://github.com/mikitex70/plantuml-markdown/archive/fcf62aa9…\` github reference into a local path reference `plantuml-markdown @ file:///cachi2/output/deps/pip/plantuml-markdown-a487c2312…\` which is not supported by hermeto.
-
Please remove all `node_modules\` and run `yarn cache clean\` in the root and `./dynamic-plugins\` directories before running the script as hermeto does not support yarn zero installs.
-
Remove any folders with additional `yarn.lock\` files outside of the main `yarn.lock\` files in the root and `./dynamic-plugins\` directories as they can cause the
yarn install --immutablecommands to fail as their dependencies will not be found in the hermeto cache.
-
-
Create a pull request in this repository to trigger a PR build in Github which will publish the image to
quay.io/rhdh-community/rhdh. Note: this will only build AMD64 images. -
Trigger the Build Next and Tag Image action in Github manually to perform a multi-arch build and publish the images to
quay.io/rhdh-community/rhdh. -
Use Konflux to build a merge request against the midstream repo. See Konflux user guide - building locally. Note: RH VPN required.
Red Hat VPN access required.
For more info on building downstream with the Red Hat build pipeline, see the docs.