Docker : Redmineを構築する

Docker で Redmine を構築したいと思う。

環境

  • CentOS 7.7
  • Docker 19.03.6
  • Docker Compose 1.18.0

事前準備

PJディレクトリを作成する(任意のディレクトリで可)。

# mkdir docker-redmine

Redmine の設定ファイルを格納するディレクトリを作成する。

# cd docker-redmine
# mkdir redmine
# mkdir mysql

Redmine のデータが保存されるディレクトリを作成する。

# mkdir redmine_data
# mkdir mysql_data

Redmine

このステップは、E-mail の送信をしないならばスキップして良い。
Dockerfile に記載されているredmine:4.1.0-alpineを後述するdocker-compose.ymlに記載してください。

Dockerfile

Dockerfile を作成する。

# touch redmine/Dockerfile

Dockerfile に下記を追加する。

FROM redmine:4.1.0-alpine

COPY ./configuration.yml /usr/src/redmine/config

configuration.yml

configuration.yml を作成する。

# touch redmine/configuration.yml

configuration.yml に下記を追加する(内容は各環境に合わせてください)。

default:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: localhost
      port: 25
      domain: redmine.example.com

MySQL

Dockerfile

Dockerfile を作成する。

# touch mysql/Dockerfile

Dockerfile に下記を追加する。

FROM mysql:5.7

COPY ./my.cnf /etc/mysql

my.cnf

my.cnf を作成する。

# touch mysql/my.cnf

my.cnf に下記を追加する。

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

[mysqld]
character-set-server=utf8

Docker Compose

docker-compose.yml を作成する。

# touch docker-compose.yml

docker-compose.yml に下記を追記する。

version: '3'
services:
  redmine:
    build: ./redmine
    container_name: redmine
    restart: always
    environment:
      REDMINE_DB_MYSQL: mysql
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: redmine
      REDMINE_DB_ENCODING: utf8
      REDMINE_SECRET_KEY_BASE: supersecretkey
    volumes:
      - ./redmine_data/files:/usr/src/redmine/files
      - ./redmine_data/log:/usr/src/redmine/log
    links:
      - "mysql"
    ports:
      - "8160:3000"
  mysql:
    build: ./mysql
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: P@ssw0rd
      MYSQL_DATABASE: redmine
      MYSQL_USER: redmine
      MYSQL_PASSWORD: redmine
    volumes:
      - ./mysql_data:/var/lib/mysql
    expose:
      - 3306

コンテナ起動

コンテナを起動する。

# docker-compose up -d

動作確認

ブラウザでhttp://localhost:8160/へアクセスし、アプリケーションが稼働しているかを確認する。 f:id:saito_shion:20200413144923p:plain

終わりに

Redmine を Docker で動かすことができた。メールの設定やMySQL文字コードの問題で、公式イメージをそのまま使えなかったのは残念である。何かもっと良い方法があるのかな?

参考サイト

https://hub.docker.com/_/redmine?tab=description

https://qiita.com/bezeklik/items/b5c39136a8db23e2e81c

https://qiita.com/bezeklik/items/b9d75ee74e0ae4c6d42c