배치하다.NET 핵심 & Github 조작으로 Heroku에 반응

배치하다.NET 핵심 & Github 조작으로 Heroku에 반응



Heroku는 클라우드에서 구축되고 배치different languages되는 어플리케이션을 위한 클라우드 플랫폼 즉 서비스(PaaS)입니다.
Heroku는.NET Core를 지원하지 않으므로 C# 코드를 직접 배포/실행할 수 없습니다.다행히 Heroku는 Docker 용기를 지원하기 때문에 이 강좌에서 용기화 용기를 어떻게 배치하는지 설명할 것입니다.NET 핵심 어플리케이션
Docker CLI와 Heroku CLI를 사용하여 이 프로세스를 로컬로 수행할 수 있지만 변경할 때마다 아주 작은 변경 사항이라도 전체 프로세스를 반복해야 합니다.이를 방지하기 위해 CI/CD 워크플로우를 사용하고 구현해야 합니다Github Actions.

Dockerfile 추가


프로그램을 만들었다고 가정합니다. 그렇지 않으면 다음 절차 tutorial 에 따라 프로그램을 만들 수 있습니다.NET 핵심 어플리케이션
응용 프로그램을 만든 후 Dockerfile을 추가할 수 있습니다.우리의 응용 프로그램 구조는 이렇게 될 것이다.

보시다시피 Dockerfile을 솔루션에 추가했습니다. 이것이 바로 Dockerfile의 최초 모습입니다.



솔루션에서 보듯이 React 애플리케이션과 현재 Dockerfile 버전의 모든 파일만 포함하는 ClientApp 폴더가 있습니다.NET 핵심 솔루션이므로 React 애플리케이션을 구축하기 위해 수정해야 합니다.

첫 줄에서 우리는 이미 성명하였다.NET 코어 베이스 이미지와 함께 노드를 추가해야 합니다.js 기본 이미지 (16줄 - React 응용 프로그램 구축에 사용) 및 구축 폴더 복사 (30줄)







기본적으로NET Core 응용 프로그램은 포트 5000과 5001에서 실행되고 다른 쪽에서는 Heroku가 당신에게 단일한 포트를 제공하며, 응용 프로그램이 Heroku가 제공하는 포트에서 실행되기를 희망합니다. 따라서 기본적으로 이것은 우리 응용 프로그램이 이 포트의 HTTP 연결만 감청해야 한다는 것을 의미합니다. Heroku는 HTTPS 부분을 담당하기 때문에 우리는 이 줄을 교체해야 합니다.

ENTRYPOINT ["dotnet", "NetCoreReactHeroku.dll"]

이게 생겼어요:



CMD ASPNETCORE_URLS=http://*:$PORT dotnet NetCoreReactHeroku.dll

Dockerfile의 초기 템플릿을 사용하면 Docker 이미지를 구축할 때 오류 npm: not found가 발생합니다. SDK의 Docker 이미지에 노드가 존재하지 않기 때문에 이 오류를 없애기 위해 csproj의PublishRunWebpack 작업을 수행하는 것을 막아야 합니다.이를 위해 이 줄을 바꿉니다:



<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">

이것에 대해:



<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish" Condition=" '$(BuildingDocker)' == '' ">

보시다시피 csproj에 조건을 추가했습니다. 이 조건은 매개 변수인 Building Docker를 받아들입니다. 이 매개 변수는 Dockerfile에 위치하고 환경 변수(8행)입니다


현재 해결 방안을 Dockerizing할 준비가 되어 있습니다. 해결 방안을 테스트/구축하고 Dockerfile이 유효한지 확인하려면 아래 명령을 실행하십시오



docker build . -t $YOUR_APP_NAME -f Dockerfile


Create a Heroku App


우선 Heroku에 계정을 가지고 계기판으로 (((dashboard.heroku.com/new-app) 이동하여 프로그램을 만들어야 합니다



Heroku 프로그램을 만든 후 API 키를 가져와야 합니다. 이 키는 Github 작업에서 사용할 것입니다.Account Settings에 액세스하여 이 키를 얻을 수 있습니다



Setting up Github Actions


Dockerfile을 추가하고 Heroku 프로그램을 만들면, 이미지를 Heroku 용기에 배치하고 웹 프로그램을 발표할 준비가 되어 있습니다.이를 위해 Github 작업을 사용합니다.Github 작업은 자동으로 사용자 정의 작업 흐름을 터치하여 Github의 이벤트(밀기, 당기기 요청 등)에 응답하는 방법을 제공합니다


프로그램의 홈 디렉터리로 이동해서 추가합니다.github 폴더를 만들고 워크플로우라는 폴더를 만듭니다. 아래 화면 캡처와 같습니다



workflows 폴더에 작업 흐름 파일, 즉ayml 파일을 만듭니다








이 작업 흐름은 이름 (첫 번째 줄) 이 있어야 하고, 트리거할 이벤트를 정의해야 합니다.우리의 예에서, 우리는 업무 흐름이 우리가 주요 지점으로 밀어붙일 때만 촉발된다고 이미 알려 왔다.9행에서 Heroku 레지스트리에 로그인하는 데 사용되는 Heroku API key env 변수를 볼 수 있습니다. 키워드 secrets를 볼 수 있습니다. 이것은 저장소 secrets로 이동해서 이 변수를 추가해야 한다는 것을 의미합니다. (아래 화면 캡처 참조)



모든 작업 흐름은 작업으로 구성되고(12행), 모든 작업은 단독 절차로 구성됩니다.우리의 예에서, 우리는 단지 3단계를 포함하는 구축 작업만 성명하였다.


  • 체크 아웃 작업(제20줄) 클론 저장소를 사용하여 $GITHUB_WORKSPACE에 저희 저장소를 서명하여 작업 흐름에 접근할 수 있도록 합니다

  • runner(25줄)에서 명령을 실행하여 Docker 이미지를 구축합니다

  • Heroku 명령 그룹(30줄과 31줄)을 실행하여 Docker 이미지를 Heroku 용기에 전송합니다


마지막으로 변경 사항을 제출하고 추진한 다음Github 저장소의 '조작' 옵션 카드로 이동하면 구축 과정이 진행되고 있음을 볼 수 있습니다.구축에 성공하면 Heroku에서 배치된 프로그램에 접근할 수 있습니다 (https://{your app NAME}.herokuapp.com)


주의: 본 강좌의 완전한 해결 방안은 Github repository에서 찾을 수 있습니다


읽어주셔서 감사합니다.나는 네가 이 강좌를 좋아하고 새로운 것을 배웠으면 한다😊.


이 글을 좋아하신다면 더 많이 보고 싶으시면


좋은 웹페이지 즐겨찾기