NextcloudをDockerで構築する手順

プライベートなDropbox環境を構築することができるOwnCloudですが、OwnCloudから派生したNextcloudが開発されています。 このNextcloudを実際に触って使ってみるために、Dockerを使って環境構築したのでその手順をメモします。
はじめに
プライベートなDropbox環境を構築することができるOwnCloudですが、最近OwnCloud社のCEOが交代し、元CEOがよりオープンなOwnCloudとしてNextcloudの開発を進めています。Nextcloudについては最近知りましたが、非常に高機能で驚きました。例えば、WebRTCによる通話、チャット、画面共有機能、タスク管理機能などが追加され利用できるようになっています。社内用のコミュニケーションプラットフォームとしてなど色々な使い方ができそうです。 このNextcloudを実際に触って使ってみるために、Dockerを使って環境構築したのでその手順をメモします。なお、すでにDockerを触ったことがあれば数分で自分のローカル環境にNextcloudを構築できます。
2020/1/8 追記
以下にNextcloudのSnap版をNginxと一緒に使う構成の構築手順をまとめました。
Nextcloudは自前でGoogleドライブのようなサービスを構築できるオープンソースソフトウェアです。この記事では、Nginxをリバースプロキシとして使いNextcloudを動作させる環境の構築手順をまとめます。
前提となる環境
私はUbuntu18.04上で構築しました。DockerやDocker Composeの実行環境はすでに構築済とします。
手順
手順自体は公式サイトに従いました。 nextcloud/docker - GitHub
適当なディレクトリを作成
まず、Nextcloudのコンテナを格納する用の適当なディレクトリを作成します。ここでは、/home/user/docker
にnextcloud
というディレクトリを作成します。
$ mkdir nextcloud
docker-compose.ymlを作成
作成したディレクトリに、以下のよう内容を記述したdocker-compose.yml
ファイルを作成します。
version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb
restart: always
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root # 適当なパスワードを設定
- MYSQL_PASSWORD=root # 適当なパスワードを設定
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
app:
image: nextcloud
ports:
- 8080:80
links:
- db
volumes:
- nextcloud:/var/www/html
restart: always
上記のうち、各自で適当に設定が必要になる箇所がMYSQL_ROOT_PASSWORD=
、MYSQL_PASSWORD=
の2箇所です。私は適当に両方共にroot
に設定しました。あくまでローカルで試す想定なので、実際にインターネットに接続されたサーバ上で構築する場合などはセキュリティ対策を実施する必要あると思います。
Docker Composeのコマンドで構築、起動
あとは以下のコマンド1つでコンテナ構築から起動まで実行されます。以下のようにdone
が表示されれば完了です。
$ docker-compose up -d
(・・・省略・・・)
Status: Downloaded newer image for nextcloud:latest
Creating nextcloud_db_1 ... done
Creating nextcloud_app_1 ... done
ps
コマンドでコンテナの稼働状況を確認すると、以下のように2つのコンテナがup
になっていることを確認できます。これで構築は完了です。
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------
nextcloud_app_1 /entrypoint.sh apache2-for ... Up 0.0.0.0:8080->80/tcp
nextcloud_db_1 docker-entrypoint.sh mysqld Up 3306/tcp
動作確認とアカウント設定
実際に構築したNextcloudにアクセスしてみます。アクセスするには、ブラウザからhttp://localhost:8080
にアクセスします。すると以下のようなログイン画面が表示されます。ここで「ストレージとデータベース」という部分をクリックします。