#目的
コンテナとして、Redmine を作成した際のつまずきを共有
#前提
CentOS Linux release 7.X 上にDocker を導入済み
※導入の手順は、以下のサイト参照
https://ic8ghatake.wordpress.com/2017/09/08/docker-%e3%81%a7redmine-%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%81%ae%e5%b7%bb/
下のサイトの転載
ic8ghatake.wordpress.com/2017/09/08/docker-%e3%81%a7redmine-%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b%e3%81%ae%e5%b7%bb/
#構築
下のサイトを参照
やったとこだけ抜粋
ディレクトリ作成
mkdir redmine_plugin_of_yours/
作成したディレクトリに移動
cd redmine_plugin_of_yours/
docker-compose 設定ファイル作成
vi docker-compose.yml
version: "2"
services:
app:
image: sameersbn/redmine
environment:
- DB_HOST=db
- DB_NAME=redmine_production
- DB_USER=root
- DB_PASS=root
links:
- db
depends_on:
- db
ports:
- 8080:80
volumes:
- ./:/home/redmine/redmine/plugins/redmine_plugin_of_yours/
db:
image: mysql
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=redmine_production
起動
docker-compose up -d
5分後に
x.x.x.x:8080 でアクセス出来ました
PW の再設定、管理者設定をして、デフォルトの設定をロードして完了。
※Redmine の初期ログインID/PW (admin/admin)
#Tips
Redmine の設定を行っていると下のエラーが発生
Internal error
An error occurred on the page you were trying to access.
If you continue to experience problems please contact your Redmine administrator for assistance.
If you are the Redmine administrator, check your log files for details about the error.
どうも日本語の入力はハジかれるようだ。
調べてみると下のページにいきつく。
デフォルト設定をロードしていなかったので、実施。
管理 > 「デフォルト設定をロード」
するとエラーが、、、
デフォルト設定がロードできませんでした: Mysql2::Error: Incorrect string value: '\xE7\xAE\xA1\xE7\x90\x86...' for column 'name' at row 1: INSERT INTO roles
(name
, issues_visibility
, position
) VALUES ('管理者', 'all', 1)
調べると下のサイトが近い状況
どうもmysql のコンフィグファイルをうまく読み込めていない様子。。。
公式MySQLでインストールされているMySQLは/etc/mysql/conf.d/に*.cnf形式のファイルが入っているとその設定を優先するようになっています。
上の文を信じて、conf.d フォルダを作成して、cnf データを置いてみる。
mkdir /etc/mysql
mkdir /etc/mysql/conf.d
cp -p /etc/my.cnf /etc/mysql/conf.d/
再度、コンポースアップ
docker-compose up -d
再度、Redmine を試してみるもダメ。。。
フォルダとファイル、コンテナを全て削除。
下のサイトを参考にして解決
結論として、
docker-compose.yml へ
command: mysqld –character-set-server=utf8 –collation-server=utf8_unicode_ci
を追加することで、対応できた。
今後、mysql を利用するときは、上のコマンドが必須だと感じた。。。
まずは、起動しているコンテナのID を取得
docker ps
redmine のコンテナを停止/削除する
docker stop "コンテナID"
docker rm "コンテナID"
問答無用で、コンテナ全てを削除するには下のコマンド
docker rm -f docker ps -a -q