NextcloudをDockerで構築する手順

公開日:2018/08/20 更新日:2018/08/20
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と一緒に使う構成の構築手順をまとめました。

www.virment.com

Nextcloudは自前でGoogleドライブのようなサービスを構築できるオープンソースソフトウェアです。この記事では、Nginxをリバースプロキシとして使いNextcloudを動作させる環境の構築手順をまとめます。

前提となる環境

私はUbuntu18.04上で構築しました。DockerやDocker Composeの実行環境はすでに構築済とします。

手順

手順自体は公式サイトに従いました。 nextcloud/docker - GitHub

適当なディレクトリを作成

まず、Nextcloudのコンテナを格納する用の適当なディレクトリを作成します。ここでは、/home/user/dockernextcloudというディレクトリを作成します。

ホスト /home/user/docker
$ mkdir nextcloud

docker-compose.ymlを作成

作成したディレクトリに、以下のよう内容を記述したdocker-compose.ymlファイルを作成します。

ホスト /home/user/docker/nextcloud/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が表示されれば完了です。

ホスト /home/user/docker/nextcloud/docker-compose.yml
$ 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にアクセスします。すると以下のようなログイン画面が表示されます。ここで「ストレージとデータベース」という部分をクリックします。

1-startpage.png

関連記事