플로 실행용 이미지 구성
CI/CD로 실행되는 플로가 사용하는 Docker 이미지를 변경하고, 사용자 지정 이미지·오프라인 환경·Red Hat UBI 9 Minimal 하드닝 이미지를 구성하는 방법을 설명합니다.
CI/CD로 실행되는 플로는 Docker 이미지 안에서 동작합니다. 기본적으로 GitLab은 플로에 필요한 도구와 네트워크 보호 기능이 포함된 이미지를 제공합니다. 프로젝트 의존성을 추가하거나 컴플라이언스 요구 사항을 충족하거나 오프라인 환경에서 플로를 실행하려면, 기본 이미지를 사용자 지정 이미지나 하드닝된 이미지로 교체할 수 있습니다. 플로의 기본 이미지 # agent-config.yml 에 image 를 설정하지 않으면 플로는 기본 이미지를 사용합니다. 기본 이미지는 Red Hat UBI 9 Minimal을 기반으로 하며 root로 실행됩니다. Anthropic Sandbox Runtime(SRT)과 일반적인 언어 런타임 모음을 포함하므로, 많은 프로젝트에서 사용자 지정 이미지 없이 플로를 실행할 수 있습니다. 기본 이미지는 registry.gitlab.com/gitlab-org/duo-workflow/default-docker-image/workflow-generic-image 에 게시됩니다. 이 이미지는 linux/amd64 와 linux/arm64 용으로 빌드되며 다음 태그 체계를 사용합니다. 빌드마다 :<short-sha> 릴리스마다 :<git-tag> 이미지 구성 요소 # 모든 구성 요소와 고정된 버전의 정본 최신 목록은 기본 이미지 런타임 인벤토리 를 default-docker-image README에서 참고합니다. 다음 표는 현재 고정된 버전을 보여 줍니다. 구성 요소 버전 또는 출처 Base image Red Hat UBI 9 Minimal ( ubi9-minimal:9.7-1776833838 ) git 2.47.x (UBI 9 stock) git-lfs UBI 9 stock Node.js 20 (UBI 9 module stream nodejs:20 ) npm Bundled with Node.js 20 @gitlab/duo-cli 9.27.0 glab (GitLab CLI) 1.120.0 @anthropic-ai/sandbox-runtime (SRT) 0.0.77 (via npm) bwrap (bubblewrap) AlmaLinux 9 EPEL (plain binary, root-based sandboxing) socat AlmaLinux 9 EPEL rg (ripgrep) AlmaLinux 9 EPEL unshare UBI 9 ( util-linux-core ) Python 3.12 with pip ( python3.12 , python3.12-pip ) Go 1.22.12 (upstream tarball) Ruby 3.3 (UBI 9 module stream ruby:3.3 ) Java 17 ( java-17-openjdk-headless ) Runtime user root 기본 이미지와 하드닝된 이미지는 하나의 기본 레이어를 공유합니다. 하드닝된 이미지는 그 레이어에 GitLab Duo CLI, glab , SRT를 추가합니다. 기본 이미지는 언어 런타임을 추가한 다음 같은 도구를 추가합니다.