Skip to main content

radius-build-images

Build Radius container images from source for local development and testing. Push to any container registry that your Kubernetes cluster can pull from.

소스 정보

저장소
radius-project/radius
최근 소스 활동
2026년 10월 16일 18:44
감지된 SKILL.md 언어
영어
스타
1,670
포크
140

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
radius-build-images
description
Build Radius container images from source for local development and testing. Push to any container registry that your Kubernetes cluster can pull from.
argument-hint
Optional: target registry (e.g. ghcr.io/my-username, myacr.azurecr.io/radius) — or leave blank to be prompted
# Radius: Build and Push Container Images Build Radius service images from source and push them to a container registry that your Kubernetes cluster can reach. This follows the workflow documented in `docs/contributing/contributing-code/contributing-code-building/README.md` and `docs/contributing/contributing-code/contributing-code-control-plane/generating-and-installing-custom-build.md`. ## Images The following images are built from this repository: | Image | Source | |-------------------|---------------------------------| | `ucpd` | `deploy/images/ucpd` | | `applications-rp` | `deploy/images/applications-rp` | | `dynamic-rp` | `deploy/images/dynamic-rp` | | `controller` | `deploy/images/controller` | | `bicep` | `deploy/images/bicep` | | `pre-upgrade` | `deploy/images/pre-upgrade` | | `testrp` | `test/testrp` | | `magpiego` | `test/magpiego` | > **Not built here:** The `deployment-engine` and `dashboard` images are **not** built from this repository. They are published separately to `ghcr.io/radius-project/`. When installing with a custom registry you need to pin these to their public location — see the `radius-install-custom` skill. ## Procedure ### Step 1: Verify Prerequisites Check that the required tools are available: 1. **Docker**: Run `docker info` — confirm the Docker daemon is running. 2. **Make**: Run `make --version` — confirm GNU Make is installed. 3. **Go**: Run `go version` — the required version is in `go.mod`. If any prerequisite is missing, stop and report which tool needs to be installed. ### Step 2: Set the Registry Ask the user for their container registry if `DOCKER_REGISTRY` is not already set. The registry must be one the user can push to and their Kubernetes cluster can pull from. ```sh export DOCKER_REGISTRY=ghcr.io/<your-registry> export DOCKER_TAG_VERSION=latest ``` > **Note:** The user must already be logged in to the registry (`docker login`, `az acr login`, etc.). If you get authentication errors, ask the user to log in first. > > **Default:** If `DOCKER_REGISTRY` is not set, the Makefile defaults to your OS username (from `build/docker.mk`). Always set it explicitly. ### Step 3: Build and Push the Images Build all images and push them to the registry in one command: ```sh DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_TAG_VERSION=${DOCKER_TAG_VERSION} make docker-build docker-push ``` This compiles all Go binaries, builds each Docker image, and pushes them to the registry. The `copy-manifests` step runs automatically. To build and push a **single image** (useful for fast iteration): ```sh make docker-build-<image-name> && make docker-push-<image-name> # e.g. make docker-build-applications-rp && make docker-push-applications-rp ``` ### Step 4: Verify Confirm the images were pushed: ```sh docker images --filter "reference=${DOCKER_REGISTRY}/*:${DOCKER_TAG_VERSION}" ``` Then proceed to the `radius-install-custom` skill to install Radius on your cluster. ## Private Registries For private registries that require authentication to pull, you will need to create a Kubernetes image pull secret when installing. See the `radius-install-custom` skill for details. ## Multi-Architecture Builds For native `linux/arm64` images (e.g. on Apple Silicon with an arm64 Kubernetes cluster), first set up buildx (one-time): ```sh make configure-buildx ``` Select the builder and build the canonical core snapshot: ```sh docker buildx use radius-builder export GORELEASER_IMAGE_REGISTRY="${DOCKER_REGISTRY}" make install-goreleaser install-syft install-jq install-yq install-oras make goreleaser-check goreleaser-snapshot make goreleaser-push-edge make docker-publish-bicep DOCKER_TAG_VERSION=edge ``` This publishes the five core images and Bicep as `edge` in the selected registry. Install with that tag. Snapshot mode itself only loads platform-specific local images; the edge target assembles their registry manifests without recompiling. Functional workflows own `testrp` and `magpiego` publication with test-specific tags; retain the single-image Make targets for local testing. ## Quick Reference | Goal | Command | |-------------------------------|--------------------------------------------------------------------------------------| | Set registry | `export DOCKER_REGISTRY=ghcr.io/<your-registry> && export DOCKER_TAG_VERSION=latest` | | Build + push all images | `make docker-build docker-push` | | Build all images | `make docker-build` | | Push all images | `make docker-push` | | Single image build + push | `make docker-build-<name> && make docker-push-<name>` | | Core snapshot build | `make goreleaser-snapshot` | | Publish core snapshot as edge | `make goreleaser-push-edge` | | Publish multi-arch Bicep | `make docker-publish-bicep DOCKER_TAG_VERSION=edge` | | Setup buildx (one-time) | `make configure-buildx` | ## Key Environment Variables | Variable | Default | Description | |-----------------------------|--------------------------------------|-------------------------------------------------------------------------| | `DOCKER_REGISTRY` | OS username (from `build/docker.mk`) | Target registry for built images. Set explicitly to your registry. | | `DOCKER_TAG_VERSION` | `latest` | Image tag | | `GORELEASER_IMAGE_REGISTRY` | `ghcr.io/radius-project` | Snapshot image registry; set it to the same value as `DOCKER_REGISTRY`. |
GitHub에서 보기