はじめに
前回、Dockerを使って、ownCloudをセットアップしてみた。では、オフィシャルイメージのapacheが内蔵されているものを利用しました。
Apacheは、非常に安定して動作するが動作が遅いらしいので、今回は、Nginxを使ってみたいと思います。
利用するイメージは、owncloud:fpmです。
コンテナ構成
OSは、前回に引き続きBargeOSを使用しますので、全てのサービスをコンテナで導入します。
導入するコンテナは、下記の3つです。
(1)Nginx
(2)ownCloud
(3)PostgresSQL
準備
本記事では、docker v17.03.0-ceとdocker-compose v1.11.2を使います。
下記のコマンドで用意します。
OSは、dockerに特化されたBargeを使いました。
dockerのバージョンアップ
$ sudo /etc/init.d/docker restart v17.03.0-ce
docker-composeのインストール
$ wget -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m`
$ chmod +x docker-compose-`uname -s`-`uname -m`
$ sudo mv docker-compose-`uname -s`-`uname -m` /opt/bin/docker-compose
$ sudo chown root:root /opt/bin/docker-compose
ownCloudのセットアップ
owncloudのimageは、owncloud:fpmを利用します。
owncloud:latestは、apacheがコンテナに内蔵されていましたが、fpmは、内蔵されていません。
fpmは、php-fpmというcgiインターフェース(?)だけが用意されているという意味みたいです。
nginxのimageは、raulr/nginx-owncloudを利用します。
このimageは、default.confに、owncloudへの接続設定が予め焼き込んであります。
# postgres
postgres:
image: postgres
container_name: postgres
volumes:
- "/opt/pg_data:/var/lib/postgresql/data"
environment:
POSTGRES_PASSWORD: supersecretpassword
# owncloud
owncloud:
image: owncloud:fpm
container_name: owncloud
links:
- postgres
# nginx
nginx:
image: raulr/nginx-owncloud
container_name: nginx
links:
- owncloud
volumes_from:
- owncloud
ports:
- "80:80"
nginxとowncloudのコンテナ間は、9000ポートで接続されます。
$ docker-compose up -d
実行してみるとapacheを使った構成よりもレスポンスが大幅に良いようです。