Skip to content

Latest commit

 

History

History
58 lines (35 loc) · 3.52 KB

File metadata and controls

58 lines (35 loc) · 3.52 KB

Building this repo as a container image

Multi-arch support

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.

Building locally

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.

How to build this Containerfile

Depending on what you’re trying to accomplish you have some options:

  1. 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-cache folder

    • 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 --immutable commands to fail as their dependencies will not be found in the hermeto cache.

  2. 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.

  3. 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.

  4. Use Konflux to build a merge request against the midstream repo. See Konflux user guide - building locally. Note: RH VPN required.

Downstream builds

Red Hat VPN access required.

For more info on building downstream with the Red Hat build pipeline, see the docs.