nopCommerceは、.NET(ASP.NET Core)上で動作する無料かつオープンソースのeコマースプラットフォームです。Nop.CoreやNop.Webなどのレイヤーに分かれた構成で、カタログ管理・注文処理などeコマース機能一式をC#コードとして実装しています。既定のデータベースはSQL Serverですが、PostgreSQLやMySQLも使えます。さらにDocker実行にも対応します。
nopCommerceはレイヤードアーキテクチャを採用しています。src/Libraries/Nop.Coreにドメインモデルや設定クラスが置かれ、Catalog・Customers・Discountsなど業務領域ごとにフォルダが分かれています。実際の画面やAPIはPresentation層のNop.Webが担当し、ビジネスロジックはService層が仲介する構造です。ビルドはdotnet buildとdotnet publishで行われ、DockerfileはSDKイメージでソース全体をビルドしたあと、ランタイムイメージに発行物だけをコピーする2段構成のマルチステージビルドになっています。docker-compose.ymlはこのWebコンテナと、MSSQL Server 2019のコンテナを同時に起動する設定です。起動後は/installのインストールウィザードからDB接続を設定して使い始めます。GitHub ActionsのCIはdotnet 10でrestore・build・testを実行し、developブランチへのpush時に検証する仕組みになっています。
- STEP 01
リポジトリをcloneしてdocker-compose up --buildを実行すると、NET SDKのAlpineイメージ内でソース全体のdotnet buildとpublishが走り、初回は時間がかかります。
- STEP 02
ビルドが終わるとnopcommerceコンテナとnopcommerce_mssql_serverコンテナが起動し、80番ポートでWebアプリが待ち受けます。
- STEP 03
ブラウザでhttp://localhostを開くと初回はインストールウィザードが表示され、compose内のSA_PASSWORDなどを使ってMSSQLへの接続情報を入力します。
- STEP 04
インストール完了後に/adminへアクセスすると管理画面に入り、商品・顧客・注文などの管理機能を確認できます。
- STEP 05
.github/workflows/dotnet.ymlと同じ手順でdotnet restore・build・testをローカルで流せば、developブランチと同じCI検証を再現できます。
docker-compose upを最後まで走らせれば、SQL Serverに接続されたnopCommerceのストアフロントと管理画面が手元のlocalhostで起動し、商品登録や注文処理などをその場で試せる状態になります。
Dockerfileはソース全体をSDKコンテナ内でビルドする構成なので、初回ビルドは重く時間がかかります。
docker-compose.ymlのSA_PASSWORDは平文でnopCommerce_db_passwordと書かれており、本番運用では変更が必須です。
提示されたファイルツリーはNop.Core配下が中心で、Nop.ServicesやNop.Web側の実装詳細はこの資料だけでは確認できません。
Alpineランタイムにtiffやlibgdiplusなどを追加インストールしており、画像処理関連で特殊なパッケージ依存があります。
自前でホストするASP.NET Coreベースのeコマース基盤を探す開発者や、.NET案件でEC構築を任された技術者に向いています。Dockerfile・docker-compose.yml・CIワークフローが揃い、レイヤー分割された大規模なドメインコードも確認できるため、構成自体は実在する本格的なnopCommerceのソースと判断できます。ただし実際の起動確認はしていないため、本稼働前には自分の環境でdocker-compose upを試すことをお勧めします。