1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker 版 Redmine の主副サーバ運用(Mac)

Last updated at Posted at 2022-09-14

リモートワーク全盛の今日このごろ。

私的事情で環境が変わったこともあり、MacBook(自宅就業時には持ち帰り。以降、副サーバ)の中に Docker で redmine を入れて、自分の進捗管理やその他の資料保存をしていたが、上司同僚にもイントラで公開する必要が出てきた。と言うことで、私の自宅就業時に、上司同僚が閲覧出来ない状態は都合が悪い。

そこで、デスクトップ端末(Mac mini: 以降、主サーバ)の方にも redmine を立てて同期させ、そちら側を閲覧してもらう事に。

サーバ IP 目的
XXX.XXX.XXX.XXX 閲覧のみ
YYY.YYY.YYY.YYY 編集及びリモートワーク時の閲覧用

背景

  • 主副双方とも M1 チップの mac。
  • この redmine については、ユーザが自分のみのため、主サーバの方の権限変更などは考慮していない。


0. 主副サーバ双方の Docker のインストール

先人達の情報と大差ない ので要点のみ。

brew で docker のアプリ, docker-compose をインストールした。設定に顕著な変更は加えていない。
FILE SHARING に、以下のディレクトリを登録している。

/opt/docker/redmine/plugins
/opt/docker/redmine/themes
/opt/docker/redmine/files
/opt/docker/redmine/db

1. 副サーバの Docker 版 redmine の構築状況

先人達の情報と大差ない ので要点のみ。

参考URL の他、色々と情報がある。

私の場合は、

/opt/docker/redmine
+-- docker-compose.yml
+-- plugins/
+-- themes/
+-- files/
+-- db/
(etc...)

な状態で docker-compose up -d している。プラグインやテーマを複数個入れているが、本稿では触れない。

一応 docker-compose.yml のみ記載する。

docker-compose.yml
docker-compose.yml
version: '3.8'
services:
  redmine:
    container_name: redmine
    image: redmine
    restart: always
    ports:
      - 3000:3000
    volumes:
      - ./plugins:/usr/src/redmine/plugins
      - ./themes:/usr/src/redmine/public/themes
      - ./plugins:/usr/src/redmine/files
    environment:
      REDMINE_DB_MYSQL: redmine-db
      REDMINE_DB_PASSWORD: redmine
  redmine-db:
    image: mariadb
    container_name: redmine-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: redmine
      MYSQL_DATABASE: redmine
    volumes:
      - ./db:/var/lib/mysql
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci

2. 副サーバから主サーバへの移植

初回のみ。

@副サーバ

イメージの tar 玉化

% pwd
/opt/docker/redmine
# 動いていたら止める。
% docker-compose stop   
# イメージの tar 玉作成。ひとつにまとめている。
% docker save -o redmine.tar redmine mariadb
%

1


@主サーバ

tar 玉他、データコピー

% rsync -av bunzaemon@YYY.YYY.YYY.YYY:/opt/docker/redmine/ /opt/docker/redmine
%

bunzaemon@YYY.YYY.YYY.YYY はもちろん副サーバのもの。


イメージの読み込み

% cd /opt/docker/redmine
% docker load < redmine.tar
%

起動

% docker-compose up -d --build
%

--build を付けないと、素のイメージを呼び、添付ファイル等が上手く表示されない状態となる。


他のマシンから http://XXX.XXX.XXX.XXX:3000(主サーバ) にアクセスして表示されたら成功。


3. 次回以降の同期

後は、副サーバに更新が入ったタイミングで、主サーバの方で

@主サーバ

% pwd
/opt/docker/redmine
# docker-compose の停止
% docker-compose stop 
# データの同期
% rsync -av bunzaemon@XXX.XXX.XXX.XXX:/opt/docker/redmine/ /opt/docker/redmine
# 起動
% docker-compose up -d --build
%

すればいい。

もちろん、自力で同期スクリプトを作成して定時実行するのもアリ。


  1. image の名前は、docker images で確認可能。つか docker-compose.yml に明記してある。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?