[DevOps][Docker] DropBoxのような環境を構築できるOwnCloudをDockerで動かす

By |1月 28, 2014|AWS, DevOps, |0 comments


Docker便利ですね。Dockerってなに?という方は[GCE][DevOps][Docker] Google Compute EngineでDockerを試すをご覧ください。

さて、実際Dockerを何か役に立つことに使ってみたいな、ということで個人でも(ゆるい)会社でも必要になる「ファイル共有」をDockerを使ってAWS上にサクっと構築したいと思います。

まずEC2でDockerが既にあるとします(この辺は割愛します)DockerはホストOSが仮想か否か問わないので手元にある物理サーバでも、共有サーバでもVPSでもDocker環境を構築できるサーバであれば何でも構いません。

今回はOwnCloudという自前でDropBoxのような環境を構築できるツールをLAMP環境が既に構築されたコンテナにインストールします。

※以降の設定を完了しOwnCloudがすぐ動くコンテナは https://index.docker.io/u/joeartsea/owncloud/ のリポジトリに公開しています。Dockerはこういうgithubっぽいことができるので便利!

それではホストOS上で以下を実行し公開されているLAMP環境コンテナを落としつつ実行します(-p: ポートは任意で変えてください)

$ sudo docker run -i -t -d -p 80:80 dockerfiles/centos-lamp /bin/bash
c637046d2982375102ee36d4dd9d81a53e5d3eeff3e94b16dac1afd2b034c9a1

立ち上がったようです。プロセスを確認します。

$ sudo docker ps
CONTAINER ID        IMAGE                            COMMAND             CREATED             STATUS              PORTS                          NAMES
c637046d2982        dockerfiles/centos-lamp:latest   /bin/bash           6 seconds ago       Up 5 seconds        0.0.0.0:80->80/tcp, 22/tcp

動いてますね。ではattachしてコンテナに入ります(何も表示されない場合はログイン後に一度エンターを押してみてください)

$ sudo docker attach c637046d2982
bash-4.1#

ログインできましたので、とりあえずApacheを起動してみます。

bash-4.1# service httpd status
httpd is stopped
bash-4.1# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.4 for ServerName
                                                           [  OK  ]

フォワードしたポートにアクセスして以下のように表示されれば問題ありません。表示されない場合、まずはファイアウォール関係を疑ってください。

次にOwnCloudをダウンロード&展開し公開ディレクトリへ移動します。

bash-4.1# wget http://download.owncloud.org/community/owncloud-6.0.1.tar.bz2
bash-4.1# bzip2 -dc owncloud-6.0.1.tar.bz2 | tar xvf -
bash-4.1# mv owncloud/* /var/www/html/

これでアクセスしてみるとPHPのmbstringがないというエラーメッセージが表示されましたのでyumでインストールしてApacheを再起動します。

bash-4.1#  yum install -y php-mbstring
bash-4.1#  service httpd restart

これでどうだ!…今度はdataディレクトリを作れないと…/var/www/htmlの権限系をいじります。

bash-4.1#  chown -R apache:apache /var/www/html
bash-4.1#  chmod 0755 /var/www/html

これで…今度はdataディレクトリは作れたけど、その中の.htaccessが動いてないよというエラーです…httpd.confを編集してApacheを再起動します。

bash-4.1#vi /etc/httpd/conf/httpd.conf 
<Directory "/var/www/html">

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
    Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All ←NoneからAllに変更
#
bash-4.1# service httpd restart

やっと動きました…セットアップ画面になると思います。ひとまずDBはたいしたことしないと思うのでデフォルトのSqliteで良いと思います。その場合はアドバンスト設定する必要はありません。

デフォルトのユーザ名とパスワードを入力してセットアップボタンをクリックしてください。これで以下のようにログイン状態が表示されると思います。

日本語化するには右上の自分のユーザ名をクリックして「Personal」メニューから変更できます!

OwnCloudを使ってS3をDropboxのように使うパッケージもあるみたいですよ!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です