AKS 시리즈.네트워크 코어 응용 프로그램:로컬 개발

10786 단어 dotnetcoreAKS
저번 ACR, AKS 및 SQL이 구축되었습니다.이번에는 Visual Studio 2019와 Dotnet core 3.0의 ASp입니다.SQL에 연결하는 네트워크 어플리케이션을 만듭니다.

ASP.NET 응용 프로그램 만들기


먼저 애플리케이션을 준비합니다.
1. Visual Studio 2019를 시작하고 "새 프로젝트"를 클릭합니다.

2. ASP.NET Core 웹 응용 프로그램 다음 을 선택합니다.

3. 프로젝트명'core3webapp'를'제작'으로 만든다.

4. 웹 응용 프로그램(모델 뷰 컨트롤러)을 선택하여 다음 옵션으로 변경한 후 작성합니다.
  • 인증: 개별 사용자 계정
  • Docker 지원 활성화:Linux 확인 및 선택

  • 제작된 어플리케이션 확인


    템플릿에서 만든 응용 프로그램의 동작을 확인합니다.

     Docker


    템플릿에 Docker 대응이 지정되어 있으므로 Docker file을 작성하면 Docker 이미지가 생성됩니다.

    파일 형식


    프로젝트 파일에서 Docker DefaultTargetOS를 다음과 같이 지정합니다.
    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <UserSecretsId>aspnet-core3webapp-01C60103-98E3-4CEB-874B-1FCA99BB1DE6</UserSecretsId>
        <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
      </PropertyGroup>
    ...
    

    Dockerfile


    Docker 이미지 생성 정의 파일은 여러 단계로 구성됩니다.이미 만들어진 Docker file의 내용에 해설된 평론을 덧붙여 보세요.
    # aspnet 3.0-buster-slim イメージを使う。別名 base と指定
    FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
    # ワーキングディレクトリとして /app を指定
    WORKDIR /app 
    # ポート 80 をオープン
    EXPOSE 80 
    # ポート 443 をオープン
    EXPOSE 443 
    
    # dotnet core 3.0 SDK イメージを使う。別名 build と指定
    FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
    # ワーキングディレクトリとして /src を指定
    WORKDIR /src 
    # core3webapp.csproj だけコピー
    COPY ["core3webapp/core3webapp.csproj", "core3webapp/"] 
    # 依存関係をリストア
    RUN dotnet restore "core3webapp/core3webapp.csproj" 
    # 全てのフォルダとファイルをコピー
    COPY . . 
    # ワーキングディレクトリを /src/core3webapp に変更
    WORKDIR "/src/core3webapp" 
    # リリースビルドを実行
    RUN dotnet build "core3webapp.csproj" -c Release -o /app/build 
    
    # 上記の build 環境の別名を publish と指定
    FROM build AS publish 
    # publish コマンドで公開用フォルダ作成
    RUN dotnet publish "core3webapp.csproj" -c Release -o /app/publish 
    
    # base 環境の別名を final と指定
    FROM base AS final 
    # ワーキングディレクトリとして /app を指定
    WORKDIR /app 
    # publish 環境の /app/publish をすべてコピー
    COPY --from=publish /app/publish . 
    # コンテナ開始時に dotnet.exe で core3webapp.dll を起動
    ENTRYPOINT ["dotnet", "core3webapp.dll"] 
    

    Docker 이미지


    프로젝트를 만들면 다음 Docker 이미지가 로컬 캐시됩니다.
    구문에서 얻은 이미지 또는 최종 이미지를 표시합니다.
    > docker images
    REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
    core3webapp                            latest              2f23df6191c3        9 minutes ago       226MB
    <none>                                 <none>              6591813430b3        9 minutes ago       923MB
    mcr.microsoft.com/dotnet/core/sdk      3.0-buster          170a7f2ec51a        6 hours ago         689MB
    mcr.microsoft.com/dotnet/core/aspnet   3.0-buster-slim     930743cb4e19        14 hours ago        207MB
    

    데이터베이스 연결 및 초기 DB 생성


    1. applications.json의 데이터베이스 연결 문자열을 수정합니다.
  • IP 주소: kubectl get svc 결과
  • 데이터베이스 이름: Users
  • 로 변경
  • 인증:sa인증
  • 비밀번호:yaml 생성 시 지정한 MyC0m9l &xP@ssw0rd
  • {
      "ConnectionStrings": {
        "DefaultConnection": "Server=52.243.63.3;Database=Users;User Id=sa;Password=MyC0m9l&xP@ssw0rd;"
      },
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*"
    }
    
    2. 도구 | Nugget 패키지 관리자 | 패키지 관리자를 시작하고 다음 명령을 실행합니다.Done의 메세지가 나올 때까지 기다려.
    PM> Update-Database
    

    디버그 실행


    마지막으로 동작을 확인한다.
    1. F5 키를 눌러 응용 프로그램 디버깅을 수행합니다.브라우저가 열리면 "Register"를 클릭합니다.

    2. 메일 비밀번호를 입력하고 "Register"를 클릭한다.

    3. "Click here to confirm your account"를 클릭하여 등록을 완료합니다.

    4. "Login"을 통해 로그인한 정보입니다.

    5. Azure Data Studio를 통해 데이터베이스의 상태를 확인합니다.

    6. docker ps를 통해 명령 알림이나 케이스 실행 중인 docker 용기를 확인합니다.
  • dreamy_napier는 무작위로 명명된 이름
  • >docker ps
    CONTAINER ID        IMAGE               COMMAND               CREATED             STATUS              PORTS                                           NAMES
    46edafe475b7        core3webapp:dev     "tail -f /dev/null"   12 seconds ago      Up 11 seconds       0.0.0.0:58637->80/tcp, 0.0.0.0:44396->443/tcp   dreamy_napier
    
    7. 첨부 컨테이너가 폴더 구조를 확인합니다.
    >docker exec -it 46eda /bin/bash
    root@46edafe475b7:/app# ls
    Areas        Dockerfile  Properties  appsettings.Development.json  core3webapp.csproj       wwwroot
    Controllers  Models      Startup.cs  appsettings.json              core3webapp.csproj.user
    Data         Program.cs  Views       bin                           obj
    
    8.dotnet의 정보에 따라 dotnet core 3.0의 실행 시간만 확인합니다.
    root@46edafe475b7:/app# dotnet --info
      It was not possible to find any installed .NET Core SDKs
      Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
          https://aka.ms/dotnet-download
    
    Host (useful for support):
      Version: 3.0.0
      Commit:  95a0a61858
    
    .NET Core SDKs installed:
      No SDKs were found.
    
    .NET Core runtimes installed:
      Microsoft.AspNetCore.App 3.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
      Microsoft.NETCore.App 3.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
    
    To install additional .NET Core runtimes or SDKs:
      https://aka.ms/dotnet-download
    

    총결산


    이번에는 Visual Studio의 템플릿에 따라 제작된 ASp입니다.네트워크 코어 3.0 응용 프로그램은 AKS의 SQL에 연결됩니다.다음에 AKS에서 애플리케이션 개발을 진행하겠습니다.
    다음 글로 이동
    디렉토리로 돌아가기

    좋은 웹페이지 즐겨찾기