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: 23834 (from 2010/06/03),
today: 3,
yesterday: 2