自プロジェクトで Redmine を使う必要があって、その時の作業を記録として残します。
前提
- Docker が使える環境
- docker-compose が使えること
- Redmine のデータはコンテナを再構築しても永続化するようにしたい
- 1サーバに複数の Redmine を構築する予定があるので、それも考慮する
docker-compose.yaml
version: '2'
services:
redmine:
image: redmine
ports:
- 3000:3000
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: redmine
depends_on:
- db
restart: always
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: redmine
MYSQL_DATABASE: redmine
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
volumes:
- "./mysql/data:/var/lib/mysql"
restart: always
いきなりですが今回使った docker-compose.yaml の中身です。
少しだけ補足すると、MariaDB のデータを docker-compose.yaml があるディレクトリ下に保存するように volume を割り当てているので、docker-compose down して再度 up してもデータが残ります。
ポートの変更
上記の yaml では 3000 で待ち受けていますが、8080:3000
や 80:3000
のように自分の使うポートに変更してください。
:3000
はコンテナ内部のポートなので変更してはいけません。
起動
初回は次のようにしてコンテナを生成しつつ起動します。
$ sudo docker-compose up -d
stop で止めたりした時は start で再開できます。
$ sudo docker-compose start
停止
一時的にコンテナを止めます。
$ sudo docker-compose stop
削除
stop & rm です。
$ sudo docker-compose down
コンテナを削除しても ./mysql/*
下にデータが残っているので適宜削除してください。