見出し画像

課題: Docker を使って Redmine を立ち上げてください

あなたはすぐにできますか?

わたしはと言うと、方法は知っていても実際に出来るかどうかを試したことがありません。
なので試してみました。

反省点は↓以下のとおり:

・ Docker Hub にアップされている Redmine サービス起動方法のドキュメントでは、日本語(utf8 文字列の保存)が考慮されていないことに気付くのが遅れた
・ Docker Compose のファイルリファレンス(英語)が想像以上に巨大で、途中からナナメ読みに切り替えたが遅かった
・ "redmine" "docker" で最初にヒットする Docker Compose のファイルリファレンス(日本語)の翻訳対象バージョンがちょっと古くて、どのキー・どのコンテキストが正しいのかを判断するのが遅れた

完成した設定ファイルは↓こちらにアップしました。
https://gist.github.com/abechanta/5bad49b69cb91611463078daf2aa6486

1) Docker

手元の PC は Windows なので、Docker Desktop for Windows を使いました。

1-1) ダウンロード

ブラウザーで公式サイトにアクセスして、

以下ボタンをクリックしてインストーラーをダウンロードして、
Get Docker Desktop for Windows (stable)

ウイルススキャンしておきました。

1-2) インストール

インストーラーをダブルクリックしました。
あとはウイザードに従いました(割愛)。

1-3) 動作確認

PowerShell 上で動作を確認しました。

PS> docker version
Client: Docker Engine - Community
Version:           19.03.8
API version:       1.40
Go version:        go1.12.17
Git commit:        afacb8b
Built:             Wed Mar 11 01:23:10 2020
OS/Arch:           windows/amd64
Experimental:      false
Server: Docker Engine - Community
Engine:
 Version:          19.03.8
 API version:      1.40 (minimum version 1.12)
 Go version:       go1.12.17
 Git commit:       afacb8b
 Built:            Wed Mar 11 01:29:16 2020
 OS/Arch:          linux/amd64
 Experimental:     false
containerd:
 Version:          v1.2.13
 GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
runc:
 Version:          1.0.0-rc10
 GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
docker-init:
 Version:          0.18.0
 GitCommit:        fec3683
PS> docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
   (amd64)
3. The Docker daemon created a new container from that image which runs the
   executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
   to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
PS> docker-compose version
docker-compose version 1.25.5, build 8a1c60f6
docker-py version: 4.1.0
CPython version: 3.7.4
OpenSSL version: OpenSSL 1.1.1c  28 May 2019

1-4) アップデート

念のためタスクトレイから Check for Updates を実行しておきます。

2) Redmine

2-1) 事前設定

コマンドラインから Docker コンテナーを個別に立ち上げても良いのですが、Docker Compose を使うことにしました。

Docker Hub にアップされている情報を眺めながら、サービスの起動方法を確認しました。
https://hub.docker.com/_/redmine

RDB には MySQL を選択しました。

docker-compose.yml を自作するべく&掲載例が version: '3.1' とやや古かったので、リファレンスをチェックしました。
https://docs.docker.com/compose/compose-file/

2-2) サービス起動

PS> docker-compose up

2-3) 動作確認

ブラウザーから localhost:8080 にアクセスして、Redmine サービスが起動していることを確認しました。
続けて管理者アカウントでログインして、パスワードを再設定しました。

「管理」タブにデフォルト設定をロードする推奨メッセージが出ているので、日本語リソースを選択して実行したところ、「デフォルト設定がロードできませんでした」となりました。
エラーメッセージから MySQL が utf8 に設定されていないことが問題であろうと推測し、調査を開始しました。

Docker Hub にアップされている情報を眺めながら、サービスの起動方法を確認しました。
https://hub.docker.com/_/mysql/

2-2') サービス起動(やり直し)

^C
PS> docker-compose rm
PS> docker-compose up

2-3') 動作確認(やり直し)

「デフォルト設定がロードできませんでした」となる問題が解消されていることまでを確認しました。

適当なプロジェクトを作成して、「ファイル」モジュールを有効にして、ファイルアップロードが成功するとホスト OS 側の ./data/volume/ に反映されることを確認しました。

2-4) あと片付け

^C


この記事が気に入ったらサポートをしてみませんか?