【Docker】ローカル上でdocker-composeからRedmineを導入する方法

こんにちは、kazuです。
個人開発でも、個人学習でも「タスク管理ツールを導入したいなー」と思ったことはありませんか?
でも「有料なんでしょ」とか「導入が難しそう。。」とか思っている方もいるかもしれません。
もちろんサーバー上に導入してどこでも見れるようにするというのであればサーバー費用などかかってしまいますので、
無料というわけには行きませんが、一人で使用するとかであればサーバーにあげる必要もないです。
それであれば使用したいという人向けに解説していきます。

前提条件

dockerインストール済み
docker-composeコマンドを使用することができる

docker-compose.ymlを作成する

まずはdocker-compose.ymlを作成して、以下のように記載してください!

version: '3.9'

services:
  redmine:
    image: redmine
    container_name: redmine
    ports:
      - "8080:3000"
    environment:
      REDMINE_DB_MYSQL: redmine_maria_db
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: password
    volumes:
      - vol_redmine:/usr/src/redmine/files

  mysql:
    image: mariadb
    container_name: redmine_maria_db
    environment:
      MYSQL_ROOT_PASSWORD: root_password
      MYSQL_DATABASE: redmine
      MYSQL_USER: redmine
      MYSQL_PASSWORD: password
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  vol_redmine:
  mysql-data:

ちょっと解説

まずは今回使用した環境についてです。
・DB → mariaDB
・ポート → 8080
まずはimage:redmineからです。こちらについては実際のredmineの環境について書かれています。
例えば使用するのは何のDBか使用するDBのユーザーネーム、パスワードは何かについてです。
次にmysqlについてです。こちらはmysqlの設定についてを書いています。
今回で言えばmariaDBを使用しています。
ちょっとした知識ですが、imageですが、mysqlであればimage: mysqlやpostgresqlであればimage: postgreです。
そして最後ですがvolumesはについてはコンテナ内で作成したデータを永続化させるために必要になります。
つまりRedmineをコンテナを破棄したとしてもvolumesにデータを残しているので、それを再利用して再度コンテナを起動したとしてもチケットが残ったままになっているということになります。

起動方法や終了方法

起動方法

1. `docker-compose up -d` を実行する
2. http://localhost:8080
3. ログインしてみる初回起動はログインID:admin,password:admin

終了方法
1. `docker-compose down` を実行する

これだけですあまり難しくないですよね!

困ったとき

ただこれだけでもうまく起動しない時もあります。
そういう時は以下を確認してみてください。
1. ファイアウォールの設定を見直してみてください
2. DBの起動時間がかかりDB起動中にRedmineが接続しようとしている可能性があります。なのでdocker-compose restart redmineを実行して少し待ってみてください
3. 他に原因があるかもしれないのでdockerを再起動するたdocker-compose downをして再度docker-compose up -dしてみてください。

他の端末で繋ぐ場合

同じネットワークを使用していた場合ですが、Redmine起動中にローカルIP経由で使用することができます。
以下が方法になります。
1. 同じネットワークに繋ぐ
2. ローカルIPを確認する。ifconfigipconfigなど
3. http://<先ほど調べたローカルIP>:8080をchromeか何かで開く

最後に

いかがでしたでしょうか?
dockerからRedmineを表示する方法についてお伝えしました。
思ったより簡単にできるんだと思ったのではないでしょうか?
手軽にRedmineを導入できるのでタスク管理に導入しようと思えたのではないでしょうか?

次のステップ

1. Redmineの使い方を見てみる
2. 実際に使ってみる
3. 現在作成してる個人開発のタスク管理をする。(個人的使用なので資格などでもOK)のタスク管理などを行う
Redmineは実際にプロジェクト管理で結構使われています。そういう意味でも使用したことない方は使ってみるのもいいかもしれません。
この記事が参考になることを願います。最後までご覧いただきありがとうございました。