AKS 시리즈.네트워크 코어 응용 프로그램:로컬 개발
10786 단어 dotnetcoreAKS
ASP.NET 응용 프로그램 만들기
먼저 애플리케이션을 준비합니다.
1. Visual Studio 2019를 시작하고 "새 프로젝트"를 클릭합니다.
2. ASP.NET Core 웹 응용 프로그램 다음 을 선택합니다.
3. 프로젝트명'core3webapp'를'제작'으로 만든다.
4. 웹 응용 프로그램(모델 뷰 컨트롤러)을 선택하여 다음 옵션으로 변경한 후 작성합니다.
제작된 어플리케이션 확인
템플릿에서 만든 응용 프로그램의 동작을 확인합니다.
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의 데이터베이스 연결 문자열을 수정합니다.
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UserSecretsId>aspnet-core3webapp-01C60103-98E3-4CEB-874B-1FCA99BB1DE6</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>
...
# 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 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
kubectl get svc
결과 {
"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 용기를 확인합니다.>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에서 애플리케이션 개발을 진행하겠습니다.
다음 글로 이동
디렉토리로 돌아가기
Reference
이 문제에 관하여(AKS 시리즈.네트워크 코어 응용 프로그램:로컬 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenakamu/items/f61ed635a77b673e8164
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AKS 시리즈.네트워크 코어 응용 프로그램:로컬 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kenakamu/items/f61ed635a77b673e8164텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)