Server/도커(Docker)

[asp.net Core] 닷넷 코어 어플리케이션 Docker 빌드(멀티 프로젝트 dockerfile)

코딩for 2023. 10. 26. 15:22
반응형

 

 

 asp.net core 도커 개발환경 구성하기

 

1. 비쥬얼 스튜디오 2022 를 이용하여 asp.net core 어플리케이션 만들기

 

Visual Studio Community 다운로드 후 설치

 

무료 개발자 소프트웨어 및 서비스 - Visual Studio

무료 제공: Visual Studio Community, Visual Studio Code, VSTS 및 Dev Essentials.

visualstudio.microsoft.com

 

ASP.NET Core 웹앱 MVC 프로젝트를 생성합니다.

 

.net core 7.0  프레임워크를 기준으로 합니다. 환경에 맞는 프레임워크를 선택합니다.

일단 Docker 사용은 선택하지 않습니다.( docker  선택시 자동으로 Dockerfile 이 생성)

프로젝트 생성후 F5 로 실행 후 정상적으로 호스팅 되는것을 확인

 

 

 

2. 윈도우용 도커 데스크탑 다운로드 후 설치

https://www.docker.com/get-started/

 

Get Started | Docker

Get started with Docker Desktop and join millions of developers in faster, more secure app development using containers and beyond.

www.docker.com

 

도커 데스크탑 실행 화면

 

도커로 빌드를 하기 위해서는 Dockerfile 을 만들어 줘야 한다.

 

* 솔루션탐색기 > 마우스 우클릭  >추가> 도커지원을 클릭 

도커 지원 자동으로 프로젝트 파일에 도커파일이 생성됨

 

 

솔루션 폴더 Dockerfile 을 생성

Dockerfile 을 작성

FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:7.0 AS build
ARG TARGETARCH
WORKDIR /source

# copy csproj and restore as distinct layers
COPY aspnetcoremvc/*.csproj .
RUN dotnet restore -a $TARGETARCH

# copy and publish app and libraries
COPY aspnetcoremvc/. .
RUN dotnet publish -a $TARGETARCH --no-restore -o /app


# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
COPY --from=build /app .
USER $APP_UID
ENTRYPOINT ["./aspnetcoremvc"]

 

3. 도커로 이미지 빌드하기

cmd 창을 실행 후  Dockerfile 이 있는 경로로 이동

 

도커 빌드 명령어 실행 및 생성된 이미지 확인

docker build -t aspnetmvc .

 

4. 도커 컨테이너 실행

docker run -it --rm -p 9999:80 --name dockermvc aspnetmvc

 

 

브라우저에서 9999 포트로 호스팅 확인 

 

 

도커 란?

 

 

Docker란? What is docker? 도커 컨테이너, docker container 실행

도커는 리눅스 컨테이너 생성 및 실행을 위한 컨테이너 기술을 뜻합니다. 오픈소스 Docker는 컨테이너를 경량화된 모듈식 가상 머신처럼 다룰 수 있도록 지원합니다.

www.redhat.com

* 도커 명령어 모음

 

[Docker] Docker Command(명령어) 정리(+옵션)

Docker 자주 사용하는 명령어 정리 - Docker 에서 자주 사용하는 명령어 및 옵션들을 정리해보자. 1. Docker System 정보 docker version : Docker 버전 및 상세정보 확인 docker -v : Docker 버전 및 빌드 버전을 한줄

lucas-owner.tistory.com

 


 

멀티 프로젝트 (서비스 프로젝트 등)   솔루션의 도커 파일 구성 하기 

Dockerfile

# https://hub.docker.com/_/microsoft-dotnet
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /source

# copy csproj and restore as distinct layers
COPY aspnetcoremvc/*.csproj aspnetcoremvc/
COPY MvcService/*.csproj MvcService/
RUN dotnet restore aspnetcoremvc/aspnetcoremvc.csproj

# copy and build app and libraries
COPY aspnetcoremvc/ aspnetcoremvc/
COPY MvcService/ MvcService/


FROM build AS publish
WORKDIR /source/aspnetcoremvc
RUN dotnet publish --no-restore -o /app

# final stage/image
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "aspnetcoremvc.dll"]

-- 이미지 빌드

 

 

반응형