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'
    }
}