OpenShift Container Platform에서 .NET 시작하기


.NET 9.0

OpenShift Container Platform에서 .NET 9.0 설치 및 실행

Red Hat Customer Content Services

초록

이 가이드에서는 OpenShift Container Platform에서 .NET 9.0을 설치하고 실행하는 방법을 설명합니다.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.

Jira를 통해 피드백 제출 (계정 필요)

  1. Jira 웹 사이트에 로그인합니다.
  2. 상단 탐색 바에서 생성을 클릭합니다.
  3. 요약 필드에 설명 제목을 입력합니다.
  4. 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
  5. 대화 상자 하단에서 생성 을 클릭합니다.

1장. 개요

.NET 이미지는 s2i-dotnetcore 에서 이미지 스트림 정의를 가져와 OpenShift에 추가됩니다.

이미지 스트림 정의에는 지원되는 다양한 버전의 .NET에 대한 sdk 이미지가 포함된 dotnet 이미지 스트림이 포함됩니다. .NET 프로그램에 대한 라이프 사이클 및 지원 정책은 지원되는 버전에 대한 최신 개요를 제공합니다.

Expand
버전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 네임스페이스 정의를 업데이트하려면 충분한 권한이 필요합니다.

프로세스

  1. 이미지 스트림을 설치(또는 업데이트)합니다.

    $ oc apply [-n namespace] -f
    https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/main/dotnet_imagestreams.json
    Copy to Clipboard Toggle word wrap

3장. OpenShift Client를 사용하여 애플리케이션 배포

애플리케이션 배포에 OpenShift Client(oc)를 사용할 수 있습니다.

프로세스

  1. 새 OpenShift 프로젝트를 생성합니다.

    $ oc new-project sample-project
    Copy to Clipboard Toggle word wrap
  2. 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
    Copy to Clipboard Toggle word wrap
  3. 빌드의 진행 상황을 추적합니다.

    $ oc logs -f bc/example-app
    Copy to Clipboard Toggle word wrap
  4. 빌드가 완료되면 배포된 애플리케이션을 확인합니다.

    $ oc logs -f dc/example-app
    Copy to Clipboard Toggle word wrap

    이제 프로젝트 내에서 애플리케이션에 액세스할 수 있습니다.

  5. 선택 사항: 외부에서 프로젝트에 액세스할 수 있도록 합니다.

    $ oc expose svc/example-app
    Copy to Clipboard Toggle word wrap
  6. 공유 가능한 URL을 가져옵니다.

    $ oc get routes
    Copy to Clipboard Toggle word wrap

4장. .NET 9.0의 환경 변수

.NET 이미지는 여러 환경 변수를 지원하여 .NET 애플리케이션의 빌드 동작을 제어합니다. 이러한 변수를 빌드 구성의 일부로 설정하거나 애플리케이션 소스 코드 리포지토리의 .s2i/environment 파일에 추가할 수 있습니다.

Expand
변수 이름설명기본

DOTNET_STARTUP_PROJECT

실행할 프로젝트를 선택합니다. 프로젝트 파일(예: csproj 또는 fsproj) 또는 단일 프로젝트 파일이 포함된 폴더여야 합니다.

.

DOTNET_ASSEMBLY_NAME

실행할 어셈블리를 선택합니다. 여기에는 . offers 확장자가 포함되어서는 안 됩니다. 이를 csproj (PropertyGroup/AssemblyName)에 지정된 출력 어셈블리 이름으로 설정합니다.

csproj 파일의 이름입니다.

DOTNET_PUBLISH_READYTORUN

true 로 설정하면 애플리케이션이 미리 컴파일됩니다. 이렇게 하면 애플리케이션이 로드될 때 Cryostat에 필요한 작업을 줄임으로써 시작 시간이 단축됩니다.

false

DOTNET_RESTORE_SOURCES

복원 작업 중에 사용되는 Cryostat 패키지 소스의 공백으로 구분된 목록을 지정합니다. 이렇게 하면 Cryostat .config 파일에 지정된 모든 소스가 재정의됩니다. 이 변수는 DOTNET_RESTORE_CONFIGFILE 과 결합할 수 없습니다.

 

DOTNET_RESTORE_CONFIGFILE

복원 작업에 사용할 Cryostat .Config 파일을 지정합니다. 이 변수는 DOTNET_RESTORE_SOURCES 와 결합할 수 없습니다.

 

DOTNET_TOOLS

앱을 빌드하기 전에 설치할 .NET 도구 목록을 지정합니다. @<version>을 사용하여 패키지 이름 보류 중이므로 특정 버전을 설치할 수 있습니다.

 

DOTNET_TEST_PROJECTS

테스트할 테스트 프로젝트 목록을 지정합니다. 단일 프로젝트 파일이 포함된 프로젝트 파일 또는 폴더여야 합니다. dotnet 테스트 는 각 항목에 대해 호출됩니다.

 

DOTNET_CONFIGURATION

디버그 또는 릴리스 모드에서 애플리케이션을 실행합니다. 이 값은 Release 또는 Debug 여야 합니다.

릴리스

DOTNET_VERBOSITY

dotnet 빌드 명령의 상세 정보를 지정합니다. 설정된 경우 빌드 시작 시 환경 변수가 출력됩니다. 이 변수는 msbuild 상세 정보 표시 값 중 하나로 설정할 수 있습니다(q[uiet], m[inimal], n[ormal], d[etailed], diag[nostic]).

 

HTTP_PROXY, HTTPS_PROXY

애플리케이션을 빌드하고 실행할 때 각각 사용되는 HTTP 또는 HTTPS 프록시를 구성합니다.

 

DOTNET_RM_SRC

true 로 설정하면 소스 코드가 이미지에 포함되지 않습니다.

 

SSL_CERT_DIR

신뢰할 추가 SSL 인증서가 있는 폴더 또는 파일 목록을 지정합니다. 인증서는 빌드 중에 실행되는 각 프로세스와 빌드 후 이미지에서 실행되는 모든 프로세스(빌드된 애플리케이션 포함)에서 신뢰할 수 있습니다. 항목은 절대 경로( /로 시작) 또는 소스 리포지토리(예: 인증서)의 경로일 수 있습니다.

 

ASPNETCORE_URLS

이 변수는 http://*:8080 으로 설정되어 이미지에서 노출된 포트를 사용하도록 properly.NET Core를 구성합니다. 이 변경은 권장되지 않습니다.

http://*:8080

DOTNET_RESTORE_DISABLE_PARALLEL

true 로 설정하면 여러 프로젝트 복원을 병렬로 비활성화합니다. 이렇게 하면 빌드 컨테이너가 낮은 CPU 제한으로 실행될 때 복원 시간 초과 오류가 줄어듭니다.

false

DOTNET_INCREMENTAL

true 로 설정하면 증분 빌드에 다시 사용할 수 있도록 Cryostat 패키지가 유지됩니다.

false

DOTNET_PACK

true 로 설정하면 게시된 애플리케이션이 포함된 /opt/app-root/app. tar.gz 에 tar.gz 파일을 만듭니다.

 

5장. .NET 9.0을 사용하여 샘플 애플리케이션 생성

5.1. Cryostat 샘플 애플리케이션 생성

s2i-dotnetcore-ex 는 .NET의 기본 Model, View, Controller(MVC) 템플릿 애플리케이션입니다.

이 애플리케이션은 .NET S2I 이미지에서 예제 애플리케이션으로 사용되며 Try Example 링크를 사용하여 OpenShift UI에서 직접 생성할 수 있습니다.

OpenShift 클라이언트 바이너리(oc)를 사용하여 애플리케이션을 생성할 수도 있습니다.

프로세스

oc 를 사용하여 샘플 애플리케이션을 생성하려면 다음을 수행합니다.

  1. .NET 애플리케이션을 추가합니다.

    $ oc new-app dotnet:9.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-ex#dotnet-9.0 --context-dir=app
    Copy to Clipboard Toggle word wrap
  2. 외부에서 애플리케이션에 액세스할 수 있도록 합니다.

    $ oc expose service s2i-dotnetcore-ex
    Copy to Clipboard Toggle word wrap
  3. sharable URL을 가져옵니다.

    $ oc get route s2i-dotnetcore-ex
    Copy to Clipboard Toggle word wrap

5.2. CRUD 샘플 애플리케이션 생성

s2i-dotnetcore-persistent-ex 는 PostgreSQL 데이터베이스에 데이터를 저장하는 간단한 CRUD(Create, Read, Update, Delete) .NET 웹 애플리케이션입니다.

프로세스

oc 를 사용하여 샘플 애플리케이션을 생성하려면 다음을 수행합니다.

  1. 데이터베이스를 추가합니다.

    $ oc new-app postgresql-ephemeral
    Copy to Clipboard Toggle word wrap
  2. .NET 애플리케이션을 추가합니다.

    $ oc new-app dotnet:9.0-ubi8~https://github.com/redhat-developer/s2i-dotnetcore-persistent-ex#dotnet-9.0 --context-dir app
    Copy to Clipboard Toggle word wrap
  3. postgresql 시크릿 및 데이터베이스 서비스 이름 환경 변수에서 환경 변수를 추가합니다.

    $ oc set env dc/s2i-dotnetcore-persistent-ex --from=secret/postgresql -e database-service=postgresql
    Copy to Clipboard Toggle word wrap
  4. 외부에서 애플리케이션에 액세스할 수 있도록 합니다.

    $ oc expose service s2i-dotnetcore-persistent-ex
    Copy to Clipboard Toggle word wrap
  5. sharable URL을 가져옵니다.

    $ oc get route s2i-dotnetcore-persistent-ex
    Copy to Clipboard Toggle word wrap

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat