CLI로 범용 환경 통합하기
CLI로 범용 환경 통합하기
CI 워크플로에서 Docker Scout CLI 클라이언트를 실행해 범용 환경 통합을 만들 수 있어요. CLI 클라이언트는 GitHub의 바이너리와 Docker Hub의 컨테이너 이미지로 사용할 수 있어요. 클라이언트를 사용해 docker scout environment 명령을 호출해 이미지를 환경에 할당하세요.
docker scout environment 명령 사용에 대한 자세한 내용은 CLI 참조를 참고하세요.
예시 (Examples)
시작하기 전에 CI 시스템에 다음 환경 변수를 설정하세요.
DOCKER_SCOUT_HUB_USER: Docker Hub 사용자 이름DOCKER_SCOUT_HUB_PASSWORD: Docker Hub 개인용 액세스 토큰
변수가 프로젝트에서 접근 가능한지 확인하세요.
Circle CI
version: 2.1
jobs:
record_environment:
machine:
image: ubuntu-2204:current
image: namespace/repo
steps:
- run: |
if [[ -z "$CIRCLE_TAG" ]]; then
tag="$CIRCLE_BRANCH"
echo "Running on branch '$CIRCLE_BRANCH'"
else
tag="$CIRCLE_TAG"
echo "Running tag '$CIRCLE_TAG'"
fi
echo "tag = $tag"
- run: docker run -it \
-e DOCKER_SCOUT_HUB_USER=$DOCKER_SCOUT_HUB_USER \
-e DOCKER_SCOUT_HUB_PASSWORD=$DOCKER_SCOUT_HUB_PASSWORD \
docker/scout-cli:1.0.2 environment \
--org "<MY_DOCKER_ORG>" \
"<ENVIRONMENT>" ${image}:${tag}
GitLab
다음 예시는 Docker executor를 사용해요.
variables:
image: namespace/repo
record_environment:
image: docker/scout-cli:1.0.2
script:
- |
if [[ -z "$CI_COMMIT_TAG" ]]; then
tag="$CI_COMMIT_REF_SLUG"
echo "Running on branch '$CI_COMMIT_BRANCH'"
else
tag="$CI_COMMIT_TAG"
echo "Running tag '$CI_COMMIT_TAG'"
fi
echo "tag = $tag"
- environment --org <MY_DOCKER_ORG> "PRODUCTION" ${image}:${tag}
Azure DevOps
trigger:
- main
resources:
- repo: self
variables:
tag: "$(Build.BuildId)"
image: "namespace/repo"
stages:
- stage: Docker Scout
displayName: Docker Scout environment integration
jobs:
- job: Record
displayName: Record environment
pool:
vmImage: ubuntu-latest
steps:
- script: docker run -it \
-e DOCKER_SCOUT_HUB_USER=$DOCKER_SCOUT_HUB_USER \
-e DOCKER_SCOUT_HUB_PASSWORD=$DOCKER_SCOUT_HUB_PASSWORD \
docker/scout-cli:1.0.2 environment \
--org "<MY_DOCKER_ORG>" \
"<ENVIRONMENT>" $(image):$(tag)
Jenkins
stage('Record environment') {
steps {
// Docker Scout 설치 (Install Docker Scout)
sh 'curl -sSfL https://raw.githubusercontent.com/docker/scout-cli/main/install.sh | sh -s -- -b /usr/local/bin'
// Docker Hub 로그인 (Log into Docker Hub)
sh 'echo $DOCKER_SCOUT_HUB_PASSWORD | docker login -u $DOCKER_SCOUT_HUB_USER --password-stdin'
// 이미지를 환경에 기록 (Record image to environment)
sh 'docker-scout environment --org "<MY_DOCKER_ORG>" "<ENVIRONMENT>" $IMAGE_TAG'
}
}