C#/.Net CoreとGit、Dockerを使ったプロジェクトのデプロイ

この記事では、Ubuntu環境でC#のWeb APIプロジェクトをGitとDockerを使ってデプロイする手順を解説します。Flexus Xインスタンスを利用して、コードのバージョン管理とコンテナ化デプロイメントを行います。

環境準備

サーバーの設定

Flexus Xインスタンスを選択し、4vCPUsと12GiBのRAMを使用しました。OSは最新版のUbuntuを選択しました。

Xshellを使用して、サーバーのパブリックIPアドレスとパスワードで接続します。

プロジェクトのデプロイ

Dockerfileの作成

.NET 8.0のWeb APIプロジェクトを作成します。ここでは、既存のweatherforecastインターフェースを使用します。

Giteeに新しいリポジトリを作成し、コードをアップロードします。

プロジェクトディレクトリにDockerfileを作成します。以下にその内容を示します:

FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER appuser
WORKDIR /app
EXPOSE 8080

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG CONFIG=Release
WORKDIR /src
COPY ["MyWebApp/MyWebApp.csproj", "MyWebApp/"]
RUN dotnet restore "MyWebApp/MyWebApp.csproj"
COPY . .
WORKDIR "/src/MyWebApp"
RUN dotnet build "MyWebApp.csproj" -c $CONFIG -o /app/build

FROM build AS publish
ARG CONFIG=Release
RUN dotnet publish "MyWebApp.csproj" -c $CONFIG -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyWebApp.dll"]

Gitのセットアップとコードの取得

Gitのインストール

sudo apt update  
sudo apt install git

Gitユーザー情報の設定

git config --global user.name "あなたの名前"  
git config --global user.email "あなたのメールアドレス"

SSHキーの生成

ssh-keygen -t rsa -b 4096 -C "あなたのメールアドレス"

生成した公開鍵をGiteeのSSHキー設定に追加します。

Dockerのインストール

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

Docker GPGキーの追加

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Dockerリポジトリの追加

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

ソフトウェアリストの更新

sudo apt update

Dockerのインストール

sudo apt install docker-ce docker-ce-cli containerd.io

プロジェクトの実行

イメージのビルド

docker build -t myapp .

コンテナの起動

docker run -d -p 8080:8080 --restart=always --name myapp myapp

セキュリティグループの設定

サーバーコンソールから、8080ポートを開放するルールを追加します。

インターフェースへのアクセス

ブラウザでサーバーのIPアドレス:8080/weatherforecastにアクセスし、レスポンスを確認します。

アプリケーションの更新

プロジェクトのコードを変更し、Gitにプッシュします。

git pull
docker build -t myapp .
docker stop myapp  
docker rm myapp
docker run -d -p 8080:8080 --restart=always --name myapp myapp

ブラウザをリフレッシュして、変更が反映されていることを確認します。

タグ: C# Docker Git Ubuntu ASP.NET Core

7月22日 03:11 投稿