Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Azure에서 Golang 앱에 대한 지속적인 배포를 설정하는 방법


Azure에서 Golang 앱에 대한 지속적인 배포를 설정하는 방법


Azure에서 Golang 앱에 대한 지속적인 배포를 설정하려면 다음 단계를 따르세요.

1단계: Azure Container Registry 만들기

1. Azure Portal로 이동하여 Container Registry 섹션으로 이동합니다.
2. 리소스 생성을 클릭하고 Container Registry를 선택합니다.
3. 필수 세부정보를 입력하고 검토 + 만들기를 클릭합니다.
4. Docker 액세스를 활성화하고 나중에 사용할 수 있도록 사용자 이름과 비밀번호를 기록해 둡니다[1].

2단계: Golang 앱 Docker화

1. GitHub에서 Golang API 프로젝트를 복제합니다.
2. `go run main.go`를 사용하여 애플리케이션을 실행합니다.
3. 애플리케이션을 테스트하고 단위 테스트를 실행합니다.
4. Dockerfile을 생성하여 Golang 앱용 Docker 이미지를 빌드합니다[1].

3단계: Azure Container Registry에 Docker 이미지 게시

1. `docker build -t .`을 사용하여 Docker 이미지를 빌드합니다.
2. 레지스트리 URL과 사용자 이름(`docker tag /`)을 사용하여 이미지에 태그를 지정합니다.
3. `docker push /`[1]을 사용하여 이미지를 Azure Container Registry에 푸시합니다.

4단계: Azure 웹앱 만들기

1. Azure Portal로 이동하여 App Service 섹션으로 이동합니다.
2. 리소스 만들기를 클릭하고 웹 앱을 선택합니다.
3. 필수 세부정보를 입력하고 검토 + 만들기를 클릭합니다.
4. 런타임을 Windows로 설정하고 프레임워크를 Go[2]로 설정합니다.

5단계: 지속적 배포 구성

1. Azure Portal에서 App Service의 배포 센터로 이동합니다.
2. 설정을 선택한 다음 소스를 선택합니다.
3. 빌드 공급자로 GitHub Actions를 선택합니다.
4. GitHub를 사용하여 Azure 계정에 권한을 부여합니다.
5. 배포하려는 리포지토리와 브랜치를 선택합니다.
6. 필요에 따라 빌드 및 배포 설정을 구성합니다[3][4].

6단계: GitHub 작업 설정

1. 리포지토리에 새 GitHub Actions 워크플로 파일(`*.yml`)을 생성합니다.
2. Docker 이미지를 빌드하고 Azure Container Registry에 배포하는 워크플로를 정의합니다.
3. 지정된 분기[1]에 대한 푸시 이벤트가 트리거되도록 워크플로를 구성합니다.

7단계: GitHub Actions를 Azure App Service에 연결

1. Azure Portal에서 App Service의 배포 센터로 이동합니다.
2. 설정을 선택한 다음 소스를 선택합니다.
3. 빌드 공급자로 GitHub Actions를 선택합니다.
4. GitHub를 사용하여 Azure 계정에 권한을 부여합니다.
5. 배포하려는 리포지토리와 브랜치를 선택합니다.
6. 필요에 따라 빌드 및 배포 설정을 구성합니다[3][4].

8단계: 모니터링 및 테스트

1. Azure Portal에서 배포 로그를 모니터링합니다.
2. 배포된 애플리케이션을 테스트하여 올바르게 실행되는지 확인합니다.

다음 단계에 따라 GitHub Actions 및 Docker 컨테이너를 사용하여 Azure에서 Golang 앱에 대한 지속적인 배포를 설정할 수 있습니다.

인용:
[1] https://circleci.com/blog/deploy-dockerized-go-app-to-azure/
[2] https://www.youtube.com/watch?v=Te9bF01iqWM
[3] https://learn.microsoft.com/en-us/azure/app-service/deploy-continuous-deployment
[4] https://dev.to/parveensingh/continuous-deployment-for-azure-app-service-github-and-azure-repos-4oog
[5] https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-azure