docker上でredmineを動かす の履歴(No.1)
更新目次†
概要†
Debian 上に Docker を入れ、その上で Redmine を動かして、いろいろ便利に使いたい。
Docker も Redmine も素人なのでだましだましです。
Docker のインストール†
独立した Linux 環境を1つのプロセスとして立ち上げられるコンテナ実行環境。
Debian 用のインストラクション通りにすれば簡単だった
https://docs.docker.com/install/linux/docker-ce/debian/
LANG:console
$ uname -r # >= 3.2 でなければならないらしい
3.16.0-4-amd64
$ sudo apt-get update # 以下、docker 配布元を apt-source に入れる
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
OK
$ sudo apt-key fingerprint 0EBFCD88 | grep -4 0EBFCD88 # should have finger print 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
pub 1024D/97BB3B58 2007-04-30 [失効: 2014-11-24]
指紋 = 3EC0 AFB9 4A84 5900 282E 7A55 B5B7 7200 97BB 3B58
uid Emdebian Archive Signing Key
pub 4096R/0EBFCD88 2017-02-22
指紋 = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
$ lsb_release -cs # jessie の文字を得る
jessie
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$ sudo apt-get update # 配布元からの情報を元に最新の docker-ce をインストール
$ sudo apt-get install docker-ce
以下の追加パッケージがインストールされます:
aufs-tools cgroupfs-mount mountall pigz plymouth
提案パッケージ:
desktop-base plymouth-themes
以下のパッケージが新たにインストールされます:
aufs-tools cgroupfs-mount docker-ce mountall pigz plymouth
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 9 個。
34.2 MB 中 33.8 MB のアーカイブを取得する必要があります。
この操作後に追加で 186 MB のディスク容量が消費されます。
$ sudo docker info # もう入っている
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 18.03.0-ce
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 3
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: cfd04396dc68220d1cecbe686a6cc3aa5ce3667c
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: 949e6fa
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.929GiB
Name: dora
ID: 4NF2:A23G:EHHR:XF6I:VR25:U7EH:OXZK:AQ7A:GEAO:24H7:A623:KHQ7
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest e38bc07ac18e 13 days ago 1.85kB
docker-composer のインストール†
.yml ファイルにまとめた Docker コンテナの起動方法を元にプロセスを起動するためのツール。
https://docs.docker.com/compose/install/ の Linux ページから
LANG:console $ sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose $ docker-compose --version docker-compose version 1.21.0, build 5920eb0
Redmine のインストール†
https://registry.hub.docker.com/u/sameersbn/redmine/
http://snickerjp.blogspot.jp/2017/03/migrate-bitnamiredmine-to-docker-redmine.html
LANG:console
$ mkdir ~/docker-redmine # redmine コンテナの起動設定を保存しておくフォルダ
$ cd ~/docker-redmine
$ wget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/docker-compose.yml
$ cat docker-compose.yml # これが起動設定の規定値 YAML で書かれている
version: '2'
services:
postgresql: # データベースサーバーのコンテナ
image: sameersbn/postgresql:9.6-2
environment: # 最低限 DB_PASS は設定しておく
- DB_USER=redmine
- DB_PASS=password
- DB_NAME=redmine_production
volumes:
- /srv/docker/redmine/postgresql:/var/lib/postgresql
redmine: # Redmine サーバーのコンテナ
image: sameersbn/redmine:2.6.7
depends_on:
- postgresql
environment: # 上で設定したのと同じ DB_PASS を記入する
- TZ=Asia/Kolkata
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=redmine
- DB_PASS=password
- DB_NAME=redmine_production
- REDMINE_PORT=10083
- REDMINE_HTTPS=false
- REDMINE_RELATIVE_URL_ROOT=
- REDMINE_SECRET_TOKEN=
- REDMINE_SUDO_MODE_ENABLED=false
- REDMINE_SUDO_MODE_TIMEOUT=15
- REDMINE_CONCURRENT_UPLOADS=2
- REDMINE_BACKUP_SCHEDULE=
- REDMINE_BACKUP_EXPIRY=
- REDMINE_BACKUP_TIME=
- SMTP_ENABLED=false
- SMTP_METHOD=smtp
- SMTP_DOMAIN=www.example.com
- SMTP_HOST=smtp.gmail.com
- SMTP_PORT=587
- SMTP_USER=mailer@example.com
- SMTP_PASS=password
- SMTP_STARTTLS=true
- SMTP_AUTHENTICATION=:login
- IMAP_ENABLED=false
- IMAP_HOST=imap.gmail.com
- IMAP_PORT=993
- IMAP_USER=mailer@example.com
- IMAP_PASS=password
- IMAP_SSL=true
- IMAP_INTERVAL=30
ports: # Docker の外からの 10083番 へのアクセスを Docker 内の 80番 に繋ぐ
- "10083:80"
volumes:
- /srv/docker/redmine/redmine:/home/redmine/data
$ # パスワード等を適切に設定する
$ sudo docker-compose up
Pulling postgresql (sameersbn/postgresql:9.6-2)...
9.6-2: Pulling from sameersbn/postgresql
c60055a51d74: Already exists
755da0cdb7d2: Already exists
969d017f67e6: Already exists
37c9a9113595: Already exists
a3d9f8479786: Already exists
e43d9de53575: Already exists
cddf24084b61: Already exists
f23b95c5f17c: Already exists
3965edbc705f: Already exists
4e6c393fb7f5: Already exists
Digest: sha256:884ccbac79c1d3daa39c07e7e1f2e5cc11ce18e2c5e41ac146258b9715f1d6c4
Status: Downloaded newer image for sameersbn/postgresql:9.6-2
Pulling redmine (sameersbn/redmine:3.4.4-2)...
3.4.4-2: Pulling from sameersbn/redmine
cb56c90f0b30: Already exists
0acc551e5716: Already exists
8956dcd35143: Already exists
908242721214: Already exists
b44ff14dd3bb: Already exists
707fcc5f355b: Already exists
10c1e51efdb9: Already exists
f093a86acbb1: Already exists
f923a64ff0ea: Already exists
79fd4a3a1d5d: Already exists
eaec5aaae3b9: Already exists
3288d3231956: Already exists
Digest: sha256:2aa94011113acbe260debe580d8259f325027b5ad68e6ecb7d4fa6692bddee1b
Status: Downloaded newer image for sameersbn/redmine:3.4.4-2
Starting docker-redmine_postgresql_1 ... done
Starting docker-redmine_redmine_1 ... done
Attaching to docker-redmine_postgresql_1, docker-redmine_redmine_1
postgresql_1 | Initializing datadir...
redmine_1 | Initializing logdir...
redmine_1 | Initializing datadir...
redmine_1 | Symlinking dotfiles...
redmine_1 | Installing configuration templates...
redmine_1 | Configuring redmine...
postgresql_1 | Initializing certdir...
postgresql_1 | Initializing logdir...
postgresql_1 | Initializing rundir...
postgresql_1 | Setting resolv.conf ACLs...
postgresql_1 | Creating database user: redmine
postgresql_1 | Creating database: redmine_production...
postgresql_1 | ‣ Granting access to redmine user...
postgresql_1 | Starting PostgreSQL 9.6...
postgresql_1 | LOG: database system was shut down at 2018-04-24 18:30:39 UTC
postgresql_1 | LOG: MultiXact member wraparound protections are now enabled
postgresql_1 | LOG: database system is ready to accept connections
postgresql_1 | LOG: autovacuum launcher started
redmine_1 | Configuring redmine::database...
redmine_1 | Configuring redmine::unicorn...
redmine_1 | Configuring redmine::secret_token...
redmine_1 | Configuring redmine::max_concurrent_ajax_uploads...
redmine_1 | Configuring redmine::sudo_mode...
redmine_1 | Configuring redmine::autologin_cookie...
redmine_1 | Configuring redmine::backups...
redmine_1 | Configuring nginx...
redmine_1 | Configuring nginx::redmine...
redmine_1 | Installing plugins...
redmine_1 | Installing themes...
redmine_1 | 2018-04-25 00:00:41,895 CRIT Supervisor running as root (no user in config file)
redmine_1 | 2018-04-25 00:00:41,895 WARN Included extra file "/etc/supervisor/conf.d/nginx.conf" during parsing
redmine_1 | 2018-04-25 00:00:41,895 WARN Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
redmine_1 | 2018-04-25 00:00:41,896 WARN Included extra file "/etc/supervisor/conf.d/unicorn.conf" during parsing
redmine_1 | 2018-04-25 00:00:41,928 INFO RPC interface 'supervisor' initialized
redmine_1 | 2018-04-25 00:00:41,928 CRIT Server 'unix_http_server' running without any HTTP authentication checking
redmine_1 | 2018-04-25 00:00:41,929 INFO supervisord started with pid 1
redmine_1 | 2018-04-25 00:00:42,931 INFO spawned: 'unicorn' with pid 229
redmine_1 | 2018-04-25 00:00:42,933 INFO spawned: 'cron' with pid 230
redmine_1 | 2018-04-25 00:00:42,935 INFO spawned: 'nginx' with pid 231
redmine_1 | 2018-04-25 00:00:44,362 INFO success: unicorn entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
redmine_1 | 2018-04-25 00:00:44,362 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
redmine_1 | 2018-04-25 00:00:44,362 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
これで http://localhost:10083 へ繋ぐと Redmine の初期ページを確認できる。
コメント・質問†
Counter: 26656 (from 2010/06/03),
today: 1,
yesterday: 4