Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/q23isline/studyaspdotnetcore

ASP.NET Core Web API と Vue.js の勉強用リポジトリ
https://github.com/q23isline/studyaspdotnetcore

docker-compose dotnet github-actions nginx sql-server swagger typescript vuejs

Last synced: 14 days ago
JSON representation

ASP.NET Core Web API と Vue.js の勉強用リポジトリ

Awesome Lists containing this project

README

        

# StudyAspDotnetCore

[![LICENSE](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
![releases](https://img.shields.io/github/release/q23isline/StudyAspDotnetCore.svg?logo=github)
[![GitHub Actions Backend](https://github.com/q23isline/StudyAspDotnetCore/actions/workflows/dotnet.yml/badge.svg)](https://github.com/q23isline/StudyAspDotnetCore/actions/workflows/dotnet.yml)
[![GitHub Actions Frontend](https://github.com/q23isline/StudyAspDotnetCore/actions/workflows/nodejs.yml/badge.svg)](https://github.com/q23isline/StudyAspDotnetCore/actions/workflows/nodejs.yml)
[![GitHub Actions Dockerfile](https://github.com/q23isline/StudyAspDotnetCore/actions/workflows/dockerfile.yml/badge.svg)](https://github.com/q23isline/StudyAspDotnetCore/actions/workflows/dockerfile.yml)
[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=555555&color=007acc&logoColor=007acc)](https://github.dev/q23isline/StudyAspDotnetCore)

[![.NET](https://img.shields.io/static/v1?logo=dotnet&label=.NET&message=v8&labelColor=555555&color=512bd4&logoColor=ffffff)](https://dotnet.microsoft.com/ja-jp/)
[![SQL Server](https://img.shields.io/static/v1?label=SQL%20Server&message=v2022&labelColor=555555&color=FFFFFF&logoColor=FFFFFF)](https://learn.microsoft.com/ja-jp/sql/sql-server/)
[![Node.js](https://img.shields.io/static/v1?logo=node.js&label=Node.js&message=v20.15.0&labelColor=555555&color=339933&logoColor=339933)](https://nodejs.org)
[![npm](https://img.shields.io/static/v1?logo=npm&label=npm&message=v10.7.0&labelColor=555555&color=CB3837&logoColor=CB3837)](https://www.npmjs.com/)
[![Vue.js](https://img.shields.io/static/v1?logo=vue.js&label=Vue.js&message=v3.5.12&labelColor=555555&color=4FC08D&logoColor=4FC08D)](https://ja.vuejs.org/)

ASP.NET Core Web API と Vue.js の勉強用リポジトリ

- [バックエンド開発ガイドライン](./backend/README.md)
- [フロントエンド開発ガイドライン](./frontend/README.md)

## 前提

- インストール
- [Windows Subsystem for Linux](https://learn.microsoft.com/ja-jp/windows/wsl/)
- [Git](https://git-scm.com/)
- [Docker Desktop](https://www.docker.com/ja-jp/products/docker-desktop/)
- [Visual Studio Code](https://code.visualstudio.com/)
- [SQL Server Management Studio](https://learn.microsoft.com/ja-jp/sql/ssms/)

## はじめにやること

1. Windows Subsystem for Linux 上でプログラムダウンロード

```bash
git clone https://github.com/q23isline/StudyAspDotnetCore.git
```

2. リポジトリのカレントディレクトリへ移動

```bash
cd StudyAspDotnetCore
```

3. 開発準備

```bash
cp frontend/.vscode/settings.json.default frontend/.vscode/settings.json
```

4. アプリ立ち上げ

```bash
docker compose build --no-cache
docker compose down -v
docker compose up -d
docker compose exec backend dotnet restore
docker compose exec backend dotnet tool restore
docker compose exec backend dotnet ef database update
docker compose exec frontend npm install
```

## 日常的にやること

### システム起動

```bash
# DB、バックエンド、フロントエンドコンテナ起動
docker compose up -d
# バックエンド起動
docker compose exec backend dotnet watch run --urls "http://0.0.0.0:8080"
# フロントエンド起動
docker compose exec frontend npm run dev -- --host
```

### システム終了

```bash
# フロントエンド起動ターミナルで Ctrl + c
# バックエンド起動ターミナルで Ctrl + c

docker compose down
```

## 動作確認

### URL

#### バックエンド

#### フロントエンド

DevTools の起動

## Permission Deniedエラーが出た時の解決方法

```bash
# プロジェクト全体のファイルすべてに読み込み、書き込み権限を与える
sudo chmod -R ugo+rw ./
# インストールしたライブラリに実行権限を含めた全権限を与える
sudo chmod -R 777 backend/bin backend/obj frontend/node_modules
```

## データベースへの接続

| 項目名 | 設定値 |
| ------------------------ | --------------- |
| サーバー名 | 127.0.0.1 |
| 認証 | SQL Server 認証 |
| ユーザー名 | sa |
| パスワード | Passw0rd |
| サーバー証明書を信頼する | ON |

## Dockerfile コード静的解析実行

```bash
docker run --rm -i hadolint/hadolint < $(pwd)/docker/local/dotnet/Dockerfile
docker run --rm -i hadolint/hadolint < $(pwd)/docker/local/mssql/Dockerfile
docker run --rm -i hadolint/hadolint < $(pwd)/docker/local/node/Dockerfile
docker run --rm -i hadolint/hadolint < $(pwd)/docker/prod/dotnet/Dockerfile
docker run --rm -i hadolint/hadolint < $(pwd)/docker/prod/mssql/Dockerfile
docker run --rm -i hadolint/hadolint < $(pwd)/docker/prod/nginx/Dockerfile
```

## ログ出力場所

| サービス | ログ出力場所 |
| -------------------- | ------------- |
| Node.js | logs/frontend |
| ASP.NET Core(開発) | backend/Logs |
| ASP.NET Core(本番) | logs/backend |
| SQL Server | logs/db |
| NGINX(本番) | logs/web |

## 本番想定でのアプリ立ち上げ

1. 本番想定のアプリ起動準備

```bash
cp docker/prod/nginx/ssl/server.crt.default docker/prod/nginx/ssl/server.crt
cp docker/prod/nginx/ssl/server.csr.default docker/prod/nginx/ssl/server.csr
cp docker/prod/nginx/ssl/server.key.default docker/prod/nginx/ssl/server.key
```

2. アプリ立ち上げ

```bash
cd StudyAspDotnetCore
docker compose -f docker-compose-prod.yml build --no-cache
docker compose -f docker-compose-prod.yml --profile migrator up migrator
docker compose -f docker-compose-prod.yml up -d
```

### 本番想定での URL

## 本番想定でのアプリ終了

```bash
docker compose -f docker-compose-prod.yml down
docker compose -f docker-compose-prod.yml --profile migrator down
```