배치하다.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에서 찾을 수 있습니다
읽어주셔서 감사합니다.나는 네가 이 강좌를 좋아하고 새로운 것을 배웠으면 한다😊.
이 글을 좋아하신다면 더 많이 보고 싶으시면
Reference
이 문제에 관하여(배치하다.NET 핵심 & Github 조작으로 Heroku에 반응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/betimshala/deploy-net-core-react-to-heroku-using-github-actions-j1b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)