Docker入門 Immutable Infrastructureを実現するを読んでおくと、理解が早いかもしれません。電子書籍だとタブレット一つで沢山持ち歩けるので便利ですよねd(^ー゜*)
概要
ココでは、ubuntu で、supervisorを用いて、nginx + php-fpm + postgersql を一つのdockerコンテナで、起動する方法を残します。ついでにsshでログインできるようにもしておきます。
Postgresqlは、imageを作成する際には、/var/share/pgsqlがVOLUMEマウントされていない状態なので、あえてここでDBの初期化等行っていません。HOST上の(永続化データ)を復元してから起動する想定になっています。
なので、事前にpostgresql9.3のDBをどちらかで作成してHOST側で /data/docker-share/webapp/pgsql 以下に配備しなければ、このコンテナを起動した際に、コンテナにsshして、supervisorctl status するとpostgresqlがFAILDとなっています。
この辺り、運用との絡みも出てくるので、ココでは触れません。
postgresqlのユーザIDは、apt-get install する際に100から順にインクリメントされた値となるようで、HOST側でchownしてもダメかも。また、Dockerfileではまだマウントされていないので、chownできない。
まだまだ、課題がのこっていそう。
環境
項目 | 内容 |
---|---|
OS | Ubuntu 14.04.3 LTS |
middle ware | nginx/1.4.6 (Ubuntu) PHP 5.5.9-1ubuntu4.11 postgres (PostgreSQL) 9.3.9 ssh |
docker | version 1.5.0 |
ボリューム共有 | HOST: /data/docker-share/webapp/ DOCKER: /var/share/ |
ファイル構成
[tvoncmeta {animated: “fast”} ] ./
- Dockerfile
- setfiles/
- default
- fastcgi.conf
- supervisor/
- cron.conf
- nginx.conf
- pgsql.conf
- php.conf
- ssh.conf
[/tvoncmeta]
手順概要
- Dockerfileを作成する
- nginxの設定ファイルを作成する
- php-fpmの設定ファイルを作成する
- nginxのsupervisorのconfファイルを作成する
- cronのsupervisorのconfファイルを作成する
- php-fpmのsupervisorのconfファイルを作成する
- postgresqlのsupervisorのconfファイルを作成する
- sshのsupervisorのconfファイルを作成する
- docker buildする
- docker run して確認する
詳細手順
- Dockerfileを作成する
- nginxの設定ファイルを作成する
- php-fpmの設定ファイルを作成する
- nginxのsupervisorのconfファイルを作成する
- cronのsupervisorのconfファイルを作成する
- php-fpmのsupervisorのconfファイルを作成する
- postgresqlのsupervisorのconfファイルを作成する
- sshのsupervisorのconfファイルを作成する
- docker buildする
- docker run して確認する
htmlファイルが無ければ
postgresql9.3のデータベースのバックアップを戻しておく
雑記
「君は「これまで」と「これから」を心配しすぎなんです。
言うでしょう?
昨日とは過去のもの、
明日とは未知のもの、
今日の日はもうけもの。
それは天の贈り物。」
@カンフーパンダ ウーグウェイ導師
The clock is running. Make the most of today.
Time waits for no man.
Yesterday is history.
Tomorrow is a mystery.
Today is a gift.
That’s why it is called the present.
@Alice Morse Earle 「Sun Dials and Roses of Yesterday: Garden Delights.」