Windows10にDocker ComposeでRedmineを導入


目的

Windows10環境にDockerを利用してRedmine, Gitlab, Jenkinsの環境セットを
繰り返し構築できるように、実際に試してみた内容を残しておきます。

記載範囲

下記前提条件に沿って、Docker Desktop for Windowsをインストールして
Docker Composeを利用してRedmineを導入するところまでを記載します。

試すにあたり、以下サイトを参考にさせて頂きました。

前提条件

  • エディション:Windows10 Pro
  • プロセッサ:Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz 2.90GHz
  • 実装RAM:16.0GB
  • システムの種類:64 ビット オペレーティング システム、x64 ベース プロセッサ
  • Docker Desktop for Windows v20.10.6
  • docker/compose 1.29.1

事前準備

Docker Desktop for Windows をインストールするWindowsマシンに対して、「Hyper-V」の設定を有効化しておきます。

  1. コントロールパネルを開く
  2. プログラムを選択し、プログラムと機能を開く
  3. Windowsの機能の有効化または無効化を選択
  4. 以下の「Hyper-V」のチェックボックスにチェックが無ければ、チェックを入れて「OK」ボタンを押下
  5. Windowsマシンの再起動

Docker Desktop for Windowsのインストール

  • 以下のサイトより「Download for Windows」ボタンを押下し、インストーラをダウンロードして実行する。

Docker Desktop for Mac and Windows | Docker

Windows PowerShell(管理者権限)を起動

Windows PowerShell起動は以下のいずれかで起動できます。
どちらの場合も、別ウィンドウでPowerShellが起動されます。

  • コマンドプロンプトを起動し、以下コマンドを入力
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process PowerShell.exe -Verb runas"
  • スタートメニューから「ファイル名を指定して実行」にて「powershell」を入力して起動後、以下コマンドを入力
Start-Process PowerShell.exe -Verb runas

Dockerのバージョンを確認

インストールしたDockerのバージョンを確認します。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\xxxx> docker version
Client:
 Cloud integration: 1.0.14
 Version:           20.10.6
 API version:       1.41
 Go version:        go1.16.3
 Git commit:        370c289
 Built:             Fri Apr  9 22:49:36 2021
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.6
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       8728dd2
  Built:            Fri Apr  9 22:44:56 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.4
  GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc:
  Version:          1.0.0-rc93
  GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Docker Composeのバージョンを確認

公式サイト(日本語化):Doker-docs-ja/Docker Composeでも記載されていますが
Docker Desktop for Windowsには、Docker Composeはその一部に含まれてすでにインストールされています。

PS C:\WINDOWS\system32> docker-compose --version
docker-compose version 1.29.1, build c34c88b2

ディレクトリ構成

今回試したディレクトリ構成は、以下のように作成し、コンテナ破棄とともにデータが失われないように
外部マウント先(コンテナ外)として「data」ディレクトリは別に分けています。

C:\DOCKER
└─my_prot01
        docker-compose.yml
└─data
  └─my_prot01
  └─db

docker-compose.yml

AWS EC2にDocker ComposeでRedmineを導入 の執筆時に記載したdocoker-compose.ymlの内容をWindows向けに修正しています。

version: '3.9'

services:
  redmine:
    image: redmine:passenger
    container_name: redmine
    ports:
      - 3000:3000
    environment:
      TZ: Asia/Tokyo
      REDMINE_DB_MYSQL: mysql
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: redmine
      REDMINE_DB_ENCODING: utf8
    depends_on:
      - mysql
    restart: always
    volumes:
      - ../data/my_prot01/redmine/files:/usr/src/redmine/files
      - ../data/my_prot01/redmine/redmine/log:/usr/src/redmine/log
      - ../data/my_prot01/redmine/plugins:/usr/src/redmine/plugins
      - ../data/my_prot01/redmine/redmine/public/themes:/usr/src/redmine/public/themes

  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    environment:
      TZ: Asia/Tokyo
      MYSQL_ROOT_PASSWORD: devops
      MYSQL_DATABASE: redmine
      MYSQL_USER: redmine
      MYSQL_PASSWORD: redmine
    volumes:
      - ../data/db:/var/lib/mysql
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci

docker-composeコマンドを実行し、Dockerコンテナ(複数)をバックグラウンド起動

PS C:\docker\my_prot01> docker-compose up -d
Docker Compose is now in the Docker CLI, try `docker compose up`

Creating mysql ... done
Creating redmine ... done
  • 備忘録

上記コマンド実行時、volumesに指定したディレクトリ権限に関するダイアログが出ました。
「Share it」を選択(volumes指定分だけ表示)

コンテナの状態を確認

PS C:\docker\my_prot01> docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                                       NAMES
7ebd216d48c5   redmine:passenger   "/docker-entrypoint.…"   24 minutes ago   Up 23 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   redmine
f35646564e40   mysql:5.7           "docker-entrypoint.s…"   24 minutes ago   Up 24 minutes   3306/tcp, 33060/tcp                         mysql

Redmineにアクセス

ブラウザを起動し、 http://localhost:3000 にアクセスする。
以下のようにRedmine画面が表示されれば完了。

Redmine初回アクセス時

  1. 「ログイン」リンクを押下後、ログインIDとパスワードは"admin"を入力して「ログイン」ボタンを押下します。
  2. 初回は以下パスワード変更画面に遷移するので、任意のパスワードに変更。

次回の予定

Windows10にDocker ComposeでJenkinsを導入する記事を投稿予定。