Skip to main content

Ubuntu 22.10 위에서 ASP.NET 4.x (or later) 빌드 환경 구축하기

  • 우분투에서 .NET 4.x 버전을 빌드 할 수 있도록 mono와 msbuild 설치
  • .NET SDK 7.0 설치
  • 그외 소소한 패키지 설치

docker 준비

FROM ubuntu:22.10
MAINTAINER username <ryujt658@gmail.com>

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ Asia/Seoul
ENV LC_CTYPE C.UTF-8

WORKDIR /root

RUN apt update
RUN apt update --fix-missing
RUN apt install git curl vim wget lftp zsh sudo net-tools ufw gcc -y
RUN sudo apt install gnupg ca-certificates -y
RUN sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
RUN echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
RUN sudo apt update

RUN wget https://packages.microsoft.com/config/ubuntu/22.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
RUN sudo dpkg -i packages-microsoft-prod.deb
RUN rm packages-microsoft-prod.deb

RUN sudo apt install -y dotnet-sdk-7.0
RUN sudo apt install -y aspnetcore-runtime-7.0
RUN sudo apt install -y mono-roslyn mono-complete mono-dbg msbuild nuget

RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
RUN git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting
RUN echo "source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc
RUN git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
RUN echo "source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc
RUN echo "ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=111'" >> ~/.zshrc
RUN echo "syntax on\\nfiletype indent plugin on\\nlet python_version_2=1\\nlet python_highlight_all=1\\nset tabstop=8\\nset softtabstop=4\\nset autoindent\nset nu">>~/.vimrc
RUN sudo chsh -s $(which zsh)

ASP.NET publish

아래 이미지와 같이 프로젝트명이 mvc450인 ASP.NET 프로젝트 빌드를 기준으로 우선 nuget을 이용해서 패키지를 설치하고 msbuild로 빌드하시면 됩니다. 배포는 파일 기준으로 스크립트를 작성하였습니다.

nuget install packages.config  -OutputDirectory ../packages

msbuild mvc450.csproj /p:OutputPath=bin /p:DeployOnBuild=true /p:PrecompileBeforePublish=true \
/p:EnableUpdateable=false /p:DebugSymbols=true /p:WDPMergeOption="CreateSeparateAssembly" \
/p:WebPublishMethod="FileSystem" /p:UseMerge=false

  • Publish 완료 이후 배포 폴더가 생성된 장면