Share via


Azure Container Apps에서 Azure CLI를 사용하여 GitHub Actions 설정

Azure Container Apps를 사용하면 GitHub Actions를 사용하여 컨테이너 앱에 수정 버전을 게시할 수 있습니다. 커밋이 GitHub 리포지토리로 푸시되면 컨테이너 레지스트리에 컨테이너 이미지를 업데이트하는 GitHub Actions 워크플로가 트리거됩니다. 컨테이너가 레지스트리에서 업데이트되면 Azure Container Apps는 업데이트된 컨테이너 이미지를 기반으로 새 수정 버전을 만듭니다.

Changes to a GitHub repo trigger an action to create a new revision.

GitHub Actions 워크플로는 리포지토리의 특정 분기에 대한 커밋에 의해 트리거됩니다. 워크플로를 만들 때 작업을 트리거하는 분기를 결정합니다.

이 문서에서는 Azure CLI를 사용하여 시작 GitHub Actions 워크플로를 생성하는 방법을 보여 줍니다. 완전히 사용자 지정할 수 있는 고유한 워크플로를 만들려면 GitHub Actions를 사용하여 Azure Container Apps에 배포를 참조하세요.

인증

GitHub Actions 통합을 추가하거나 제거할 때 GitHub 개인용 액세스 토큰을 전달하거나 대화형 GitHub 로그인 환경을 사용하여 인증할 수 있습니다. 대화형 환경은 웹 브라우저에서 양식을 열고 GitHub로 로그인할 수 있는 기회를 제공합니다. 성공적으로 인증되면 토큰이 현재 세션의 나머지 부분에 대해 GitHub에서 사용되는 CLI로 다시 전달됩니다.

  • 개인용 액세스 토큰을 전달하려면 --token 매개 변수를 사용하고 토큰 값을 제공합니다.
  • 대화형 로그인을 사용하도록 선택하는 경우 값 없이 --login-with-github 매개 변수를 사용합니다.

참고 항목

GitHub 개인용 액세스 토큰에는 workflow 범위가 선택되어 있어야 합니다.

추가

containerapp github-action add 명령은 컨테이너 앱과 GitHub Actions 통합을 만듭니다.

참고 항목

아래 예제를 진행하기 전에 첫 번째 컨테이너 앱이 이미 배포되어 있어야 합니다.

컨테이너 앱에 GitHub Actions를 처음 연결할 때 서비스 주체 컨텍스트를 제공해야 합니다. 다음 명령은 서비스 주체를 만드는 방법을 보여 줍니다.

az ad sp create-for-rbac \
  --name <SERVICE_PRINCIPAL_NAME> \
  --role "contributor" \
  --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>

이 예제와 상호 작용할 때 <>로 둘러싸인 자리 표시자를 값으로 바꿉니다.

이 명령의 반환 값은 서비스 사용자의 appId, password, tenant을 포함하는 JSON 페이로드입니다. 이러한 값을 az containerapp github-action add 명령에 전달해야 합니다.

다음 예제에서는 개인용 액세스 토큰을 사용하는 동안 통합을 추가하는 방법을 보여 줍니다.

az containerapp github-action add \
  --repo-url "https://github.com/<OWNER>/<REPOSITORY_NAME>" \
  --context-path "./dockerfile" \
  --branch <BRANCH_NAME> \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --registry-url <URL_TO_CONTAINER_REGISTRY> \
  --registry-username <REGISTRY_USER_NAME> \
  --registry-password <REGISTRY_PASSWORD> \
  --service-principal-client-id <appId> \
  --service-principal-client-secret <password> \
  --service-principal-tenant-id <tenant> \
  --token <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>

이 예제와 상호 작용할 때 <>로 둘러싸인 자리 표시자를 값으로 바꿉니다.

표시

containerapp github-action show 명령은 컨테이너 앱에 대한 GitHub Actions 구성 설정을 반환합니다.

이 예제에서는 개인용 액세스 토큰을 사용하는 동안 통합을 추가하는 방법을 보여 줍니다.

az containerapp github-action show \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <CONTAINER_APP_NAME>

이 예제와 상호 작용할 때 <>로 둘러싸인 자리 표시자를 값으로 바꿉니다.

이 명령은 GitHub Actions 통합 구성 설정을 사용하여 JSON 페이로드를 반환합니다.

삭제

containerapp github-action delete 명령은 컨테이너 앱에서 GitHub Actions를 제거합니다.

az containerapp github-action delete \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <CONTAINER_APP_NAME> \
  --token <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>

이 예제와 상호 작용할 때 <>로 둘러싸인 자리 표시자를 값으로 바꿉니다.