OpenShift Container Platform에서 .NET 시작하기
OpenShift Container Platform에서 .NET 9.0 설치 및 실행
초록
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Jira를 통해 피드백 제출 (계정 필요)
- Jira 웹 사이트에 로그인합니다.
- 상단 탐색 바에서 생성을 클릭합니다.
- 요약 필드에 설명 제목을 입력합니다.
- 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
- 대화 상자 하단에서 생성 을 클릭합니다.
1장. 개요 링크 복사링크가 클립보드에 복사되었습니다!
.NET 이미지는 s2i-dotnetcore 에서 이미지 스트림 정의를 가져와 OpenShift에 추가됩니다.
이미지 스트림 정의에는 지원되는 다양한 버전의 .NET에 대한 sdk 이미지가 포함된 dotnet 이미지 스트림이 포함됩니다. .NET 프로그램에 대한 라이프 사이클 및 지원 정책은 지원되는 버전에 대한 최신 개요를 제공합니다.
| 버전 | Tag | 별칭 |
|---|---|---|
| .NET 8.0 | dotnet:8.0-ubi8 | dotnet:8.0 |
| .NET 9.0 | dotnet:9.0-ubi8 | dotnet:9.0 |
sdk 이미지에는 dotnet-runtime 이미지 스트림 아래에 정의된 해당 런타임 이미지가 있습니다.
컨테이너 이미지는 Red Hat Enterprise Linux 및 OpenShift의 여러 버전에서 작동합니다. UBI-8 기반 이미지(suffix -ubi8)는 registry.access.redhat.com 에서 호스팅되며 인증이 필요하지 않습니다.
2장. .NET 이미지 스트림 설치 링크 복사링크가 클립보드에 복사되었습니다!
.NET 이미지 스트림을 설치하려면 OpenShift Client(oc) 바이너리와 함께 s2i-dotnetcore 의 이미지 스트림 정의를 사용합니다. 이미지 스트림은 Linux, Mac 및 Windows에서 설치할 수 있습니다.
글로벌 openshift 네임 스페이스에서 .NET 이미지 스트림을 정의하거나 프로젝트 네임스페이스에서 로컬로 정의할 수 있습니다. openshift 네임스페이스 정의를 업데이트하려면 충분한 권한이 필요합니다.
프로세스
이미지 스트림을 설치(또는 업데이트)합니다.
oc apply [-n namespace] -f
$ oc apply [-n namespace] -f https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/main/dotnet_imagestreams.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3장. OpenShift Client를 사용하여 애플리케이션 배포 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션 배포에 OpenShift Client(oc)를 사용할 수 있습니다.
프로세스
새 OpenShift 프로젝트를 생성합니다.
oc new-project sample-project
$ oc new-project sample-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow properly.NET Core 애플리케이션을 추가합니다.
oc new-app --name=example-app 'dotnet:9.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-9.0' --build-env DOTNET_STARTUP_PROJECT=app
$ oc new-app --name=example-app 'dotnet:9.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-9.0' --build-env DOTNET_STARTUP_PROJECT=appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 빌드의 진행 상황을 추적합니다.
oc logs -f bc/example-app
$ oc logs -f bc/example-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 빌드가 완료되면 배포된 애플리케이션을 확인합니다.
oc logs -f dc/example-app
$ oc logs -f dc/example-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이제 프로젝트 내에서 애플리케이션에 액세스할 수 있습니다.
선택 사항: 외부에서 프로젝트에 액세스할 수 있도록 합니다.
oc expose svc/example-app
$ oc expose svc/example-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 공유 가능한 URL을 가져옵니다.
oc get routes
$ oc get routesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. .NET 9.0의 환경 변수 링크 복사링크가 클립보드에 복사되었습니다!
.NET 이미지는 여러 환경 변수를 지원하여 .NET 애플리케이션의 빌드 동작을 제어합니다. 이러한 변수를 빌드 구성의 일부로 설정하거나 애플리케이션 소스 코드 리포지토리의 .s2i/environment 파일에 추가할 수 있습니다.
| 변수 이름 | 설명 | 기본 |
|---|---|---|
| DOTNET_STARTUP_PROJECT |
실행할 프로젝트를 선택합니다. 프로젝트 파일(예: |
|
| DOTNET_ASSEMBLY_NAME |
실행할 어셈블리를 선택합니다. 여기에는 |
|
| DOTNET_PUBLISH_READYTORUN |
|
|
| DOTNET_RESTORE_SOURCES |
복원 작업 중에 사용되는 Cryostat 패키지 소스의 공백으로 구분된 목록을 지정합니다. 이렇게 하면 Cryostat | |
| DOTNET_RESTORE_CONFIGFILE |
복원 작업에 사용할 Cryostat | |
| DOTNET_TOOLS |
앱을 빌드하기 전에 설치할 .NET 도구 목록을 지정합니다. | |
| DOTNET_TEST_PROJECTS |
테스트할 테스트 프로젝트 목록을 지정합니다. 단일 프로젝트 파일이 포함된 프로젝트 파일 또는 폴더여야 합니다. | |
| DOTNET_CONFIGURATION |
디버그 또는 릴리스 모드에서 애플리케이션을 실행합니다. 이 값은 |
|
| DOTNET_VERBOSITY |
| |
| HTTP_PROXY, HTTPS_PROXY | 애플리케이션을 빌드하고 실행할 때 각각 사용되는 HTTP 또는 HTTPS 프록시를 구성합니다. | |
| DOTNET_RM_SRC |
| |
| SSL_CERT_DIR |
신뢰할 추가 SSL 인증서가 있는 폴더 또는 파일 목록을 지정합니다. 인증서는 빌드 중에 실행되는 각 프로세스와 빌드 후 이미지에서 실행되는 모든 프로세스(빌드된 애플리케이션 포함)에서 신뢰할 수 있습니다. 항목은 절대 경로( | |
| ASPNETCORE_URLS |
이 변수는 |
|
| DOTNET_RESTORE_DISABLE_PARALLEL |
|
|
| DOTNET_INCREMENTAL |
|
|
| DOTNET_PACK |
|
5장. .NET 9.0을 사용하여 샘플 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
5.1. Cryostat 샘플 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
s2i-dotnetcore-ex 는 .NET의 기본 Model, View, Controller(MVC) 템플릿 애플리케이션입니다.
이 애플리케이션은 .NET S2I 이미지에서 예제 애플리케이션으로 사용되며 Try Example 링크를 사용하여 OpenShift UI에서 직접 생성할 수 있습니다.
OpenShift 클라이언트 바이너리(oc)를 사용하여 애플리케이션을 생성할 수도 있습니다.
프로세스
oc 를 사용하여 샘플 애플리케이션을 생성하려면 다음을 수행합니다.
.NET 애플리케이션을 추가합니다.
oc new-app dotnet:9.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-9.0 --context-dir=app
$ oc new-app dotnet:9.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-9.0 --context-dir=appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 외부에서 애플리케이션에 액세스할 수 있도록 합니다.
oc expose service s2i-dotnetcore-ex
$ oc expose service s2i-dotnetcore-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow sharable URL을 가져옵니다.
oc get route s2i-dotnetcore-ex
$ oc get route s2i-dotnetcore-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. CRUD 샘플 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
s2i-dotnetcore-persistent-ex 는 PostgreSQL 데이터베이스에 데이터를 저장하는 간단한 CRUD(Create, Read, Update, Delete) .NET 웹 애플리케이션입니다.
프로세스
oc 를 사용하여 샘플 애플리케이션을 생성하려면 다음을 수행합니다.
데이터베이스를 추가합니다.
oc new-app postgresql-ephemeral
$ oc new-app postgresql-ephemeralCopy to Clipboard Copied! Toggle word wrap Toggle overflow .NET 애플리케이션을 추가합니다.
oc new-app dotnet:9.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-persistent-ex#dotnet-9.0 --context-dir app
$ oc new-app dotnet:9.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-persistent-ex#dotnet-9.0 --context-dir appCopy to Clipboard Copied! Toggle word wrap Toggle overflow postgresql시크릿 및 데이터베이스 서비스 이름 환경 변수에서 환경 변수를 추가합니다.oc set env dc/s2i-dotnetcore-persistent-ex --from=secret/postgresql -e database-service=postgresql
$ oc set env dc/s2i-dotnetcore-persistent-ex --from=secret/postgresql -e database-service=postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 외부에서 애플리케이션에 액세스할 수 있도록 합니다.
oc expose service s2i-dotnetcore-persistent-ex
$ oc expose service s2i-dotnetcore-persistent-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow sharable URL을 가져옵니다.
oc get route s2i-dotnetcore-persistent-ex
$ oc get route s2i-dotnetcore-persistent-exCopy to Clipboard Copied! Toggle word wrap Toggle overflow