Redmine+MySQL8をdocker-composeする

今回も 仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん | amazon.co.jp を参考に

章末の課題としてある「docker-composeでRedmine+MySQL8を構築する」を目標としています。

まず、docker-compose.yml を$USER/redmine-folder ディレクトリ配下に作成します。

docker-compose.yml
version: '3' services: mysql000ex21: image: mysql:8 networks: - redmine000net1 volumes: - mysql000vol21:/var/lib/mysql ports: - 3306:3306 restart: always environment: MYSQL_DATABASE: redmine000db MYSQL_ROOT_PASSWORD: myrootpass MYSQL_USER: rm000user MYSQL_PASSWORD: rmuserpass command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password redmine000ex22: depends_on: - mysql000ex21 image: redmine networks: - redmine000net1 volumes: - ./data/files:/usr/src/redmine/files - ./data/plugins:/usr/src/redmine/plugins - ./data/public/themes:/usr/src/redmine/public/themes ports: - 8095:3000 restart: always environment: REDMINE_DB_MYSQL: mysql000ex21 REDMINE_DB_DATABASE: redmine000db REDMINE_DB_USERNAME: rm000user REDMINE_DB_PASSWORD: rmuserpass networks: redmine000net1: volumes: mysql000vol21:

今回は課題メモにより、redmineボリュームを永続化しています。

具体的には、ホストOSの$USER/redmine-folder配下にmkdirコマンドで領域を確保して、Redmineサービスの volumesの定義で仮想ディレクトリ、/usr/src/redmine/files, /usr/src/redmine/plugins, /usr/src/redmine/public/themesを永続化しています。

[gusachan@www redmine_folder]$ mkdir data
[gusachan@www redmine_folder]$ mkdir data/files
[gusachan@www redmine_folder]$ mkdir data/plugins
[gusachan@www redmine_folder]$ mkdir data/public
[gusachan@www redmine_folder]$ mkdir data/public/themes

ディレクトリ構成は以下の通りになりました。

[gusachan@www redmine_folder]$ ls -l
drwxrwxr-x. 6 gusachan gusachan 62 2月 25 19:29 data -rw-rw-r--. 1 gusachan gusachan 1079 2月 25 20:20 docker-compose.yml
[gusachan@www redmine_folder]$ ls -l data/
drwxr-xr-x. 2 systemd-bus-proxy ssh_keys 6 2月 25 19:29 files drwxrwxr-x. 2 gusachan gusachan 6 2月 25 17:57 plugins drwxrwxr-x. 3 gusachan gusachan 20 2月 25 17:58 public

サービスを起動する前にfirewall-cmdでポート開放します。

# firewall-cmd --add-service=mysql --zone=public --permanent
# firewall-cmd --add-port=3000/tcp --zone=public --permanent
# firewall-cmd --reload

続いて、docker-compose up -d コマンドでサービスを起動します。

$ docker-compose up -d

ブラウザのアドレスバーからlocalhost:8095で表示を確認して初期パスワードを変更します。(初期ユーザー、パスワードはadmin,admin)

最後にサービスを停止して終了します。

$ docker-compose stop

うまくいかないときはdownコマンドでサービスを削除したりデーモン再起動してやり直すと良いようです。

$ docker-compose down
# sudo systemctl daemon-reload
# sudo systemctl restart docker

お疲れ様でした。

同じカテゴリーの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です