Windows10 Pro のローカル環境で Redmine を動かす～Docker Desktop for Windowsを使用

ローカル環境で少しRedmineを使ってみようと思い、環境構築してみました。
その時のメモを記します。
※あくまでも『ローカル環境』『ユーザーは自分だけ』で使うことを前提としています。

# 0. 前準備

### ◆Hyper-Vの有効化

コントロールパネル→プログラムと機能→Windowsの機能の有効化または無効化 をクリックして開く"Windowsの機能"ウィンドウで、次図赤枠囲みのように『Hyper-V』と『Linux用Windowsサブシステム』にチェックを入れ、[OK]を押下した後、PCを再起動する。
　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402403/50e451fb-7573-5850-1c34-36ecbedad77f.png" alt="Windowsの機能の有効化または無効化" width="475">

### ◆仮想化の有効化
タスクマネージャー→パフォーマンスタブ にて、右下の『仮想化』が有効になっていることを確認する。
無効なら有効にする必要があるが、その方法はここでは割愛する。
　<img width="475" alt="taskmgr.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402403/9f055fb0-8adb-4bee-ad84-2a43b277d4df.png">

# 1. Docker Desktop for Windows をインストール

* インストール方法が記されている https://docs.docker.com/docker-for-windows/install/ にアクセスする。
* [Download from Docker Hub] をクリックする。 
* ページ中ほどにある[Get Docker Desktop for Windows (stable)] をクリックし、"Docker Desktop Installer.exe" をダウンロードする。 
* ダウンロードが完了した上記exeをダブルクリックし、ダイアログに沿ってインストールを行う。
なお、Configurationのチェックはすべて付けたままとしておく。

　<img width="475" alt="Installing_DockerDesktop_Configuration.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402403/446eeb37-4f13-8e44-a445-8dd0906f98bb.png">

* インストール完了後、Windowsを再起動する。再起動後、Dockerが自動で起動する。

### **※"WSL 2 installation is incomplete."と表示されたら…**
　<img width="475" alt="WSL2_installation_is_incomplete.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402403/bfe51381-0779-c4a8-c59c-00e8997d4166.png">
→ 以下のサイトより『WSL2 Linuxカーネル更新プログラムパッケージ』をインストールする。
　　　https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel

* ページ中ほどにある ”WSL2 Linux カーネル更新プログラム パッケージをダウンロード" のリンクをクリックする。
* ダウンロードされた"wsl_update_x64.msi"をダブルクリックしてインストールする。
* その後、再度PCを再起動すればOK。


# 2. Redmine 関連のファイル一式ダウンロード＆起動

* docker-compose.yml を記述して、適当なフォルダに置く(C:\Docker\Redmineなど) 。記述例は次の通り。

```json:docker-compose.yml
version: '3.7'

services:
    redmine:
        image: redmine
        container_name: redmine
        ports:
            - "127.0.0.1:8080:3000"
        volumes:
            - ./data/plugins:/usr/src/redmine/plugins
            - ./data/themes:/usr/src/redmine/public/themes
        environment:
            REDMINE_DB_MYSQL: redmine-db
            REDMINE_DB_PASSWORD: redmine
        restart: always

    redmine-db:
        image: mariadb
        container_name: redmine-db
        volumes:
            - ./data/db:/var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: redmine
            MYSQL_DATABASE: redmine
        restart: always
        command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
```

* PowerShell を起動し、 **cd C:\Docker\Redmine** と入力、上記フォルダに移動する。

* docker-compose up と押下してEnterを押下する。(初回は諸々のファイルがダウンロードされるため、時間がかかる。)

* ブラウザで http://localhost:8080 にアクセスすると、Redmineのホーム画面が表示される。
　<img alt="Redmine_Home.png" width="515" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402403/0c0764cb-6914-32c8-53cd-3f590b848211.png">
ユーザー:admin、パスワード:admin でログインできる。

# 3. Dockerを止める

* Dockerのショートカットをダブルクリックし、以下のウィンドウを開く。

　<img alt="Docker_Stop.png" width="750" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/402403/4134f0be-97cd-09c3-7a68-68f304b096dc.png">

* Stopボタン(円の中に■)をクリックする。

なお、上記のウィンドウを開かずに、PowerShellのターミナル上で　Ctrl+C のキー押下 でも止められる。

# 参考
☆参考にさせていただきました。感謝いたします。
　https://qiita.com/shione/items/0646a123fc9f5b5769b4
　https://qiita.com/bezeklik/items/b5c39136a8db23e2e81c