はじめに
-
Nextcloud Meetup Tokyo #01が開催されるとのことで、記念にNextcloudアドオン開発の始め方を公開します。
- 現時点で席の空きがあるようなので、お時間のある人は是非いらしてください
(ビアバッシュあるみたい)
- 現時点で席の空きがあるようなので、お時間のある人は是非いらしてください
- 環境は、PhpStorm + Docker + Win10 です。
- 因みに、Win10に
Docker for Windowsをインストールするということは、Hyper-Vになるので、すなわちVirtualBoxは使えなくなります。この件は、社内でも議論になっていて、既存の環境を捨ててローカルの開発環境をオールDockerで行くという強い意気込みが必要かもしれません。 - ownCloudじゃなくて、Nextcloudって?という方は、こちらを。
概要
-
以下の構成で、apps配下にカスタムアプリを配置するといったNextcloudアドオン開発始めるまでの手順です。
/nextcloud-docker-develop ├─docker-nextcloud <-- docker-composeベースディレクトリ │ ├─apps <-- カスタマイズアプリ配置ディレクトリ │ ├─conf <-- カスタムconfファイル配置ディレクトリ │ └─docker-compose.yml ├─server-src <-- nextcloudのcoreソース ├─.gitignore ├─.gitmodules └─README.md
事前準備
-
こちらを参考に
Windows10にDocker for Windowsを入れます。- 以下は、今回利用したバージョンです。
PS C:\> docker --version Docker version 18.03.1-ce, build 9ee9f40 -
PHPで開発するので、PHPStorm必須です。入れます。
- 以下は、今回利用したバージョンです。
Version: 2018.1.2 Build: 181.4668.78
環境構築
Dockerの設定
-
Dockerの設定画面は、タスクトレイのDockerアイコンを右クリック -> Settings から表示できます。
-
PhpStormからのDockerコマンドは、
tcp://localhost:2375でリッスンするため、以下のExpose daemon on tcp://localhost:2375 without TLSを On にします。

-
PhpStormのワークスペース(ソースの配置場所)のドライブに対して共有設定を行います。私の場合は、EドライブにワークスペースがあるのでEドライブにチェックを入れました。

PhpStormの設定
-
PowerShellにて本記事用に用意したgitリポジトリからソース群をCloneします。submoduleで構成されているので
--recursiveを付与してください。> cd E: > git clone --recursive git@github.com:ukitiyan/nextcloud-docker-develop.git > cd nextcloud-docker-develop -
以下のようなディレクトリ構成でCloneされていることを確認してください。
/nextcloud-docker-develop ├─docker-nextcloud <-- docker-composeベースディレクトリ │ ├─apps <-- カスタマイズアプリ配置ディレクトリ │ ├─conf <-- カスタムconfファイル配置ディレクトリ │ └─docker-compose.yml ├─server-src <-- nextcloudのcoreソース ├─.gitignore ├─.gitmodules └─README.md -
上記
nextcloud-docker-developをワークスペースとして、PhpStormを起動します。- 本記事では、
E:¥nextcloud-docker-developをワークスペースとしています。
- 本記事では、
-
ツールバーの
File->Settings->Build, Execution, Deployment->Dockerから、APIが疎通(Connection succeefull)していることを確認してください。確認したらOKクリックで抜けてください。

-
ツールバーの
Run->Edit Configurations..からダイアログを表示し+->Docker->Docker-composeを選択してください。

-
表示された画面に以下を入力し、
OKクリックで抜けてください。

- Name: Nextcloud
- Compose file(s): .\docker-nextcloud\docker-compose.yml;
-
ツールバーに
NextcloudのRunボタンが表示されるので、クリックします。( ツールバーのRun->Run 'Nextcloud'でもOKです )

-
コンソールに
'Compose: docker-nextcloud/docker-compose.yml' has been deployed successfully.と表示されたらブラウザで http://localhost:8080 にアクセスし、以下のトップ画面が表示されるか確認してください。

Nextcloudの初期設定
-
引き続き、Nextcloudの初期設定を行います。事前に docker-compose.yml を確認しておきましょう。
docker-compose.ymlversion: '2' volumes: nextcloud: db: services: db: image: mariadb restart: always volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=nextcloud - MYSQL_PASSWORD=nextcloud - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci app: image: nextcloud:fpm links: - db volumes: - nextcloud:/var/www/html - ./apps:/var/www/html/custom_apps:rw restart: always web: image: nginx ports: - 8080:80 links: - app volumes: - ./conf/nginx.conf:/etc/nginx/nginx.conf:ro volumes_from: - app restart: always- db, app, webの3コンテナで起動していることが分かります。
-
MYSQL_XXXにDBの設定情報が記載されていることが分かります。 - appサービスの volumesにて
appsがマウントされていることが分かります。
-
さて、ブラウザに戻り以下の通り設定し
セットアップを完了しますボタンをクリックしてください。- ユーザー名: admin (任意)
- パスワード: ********* (任意)
- データフォルダ: /var/www/html/data
- データベースを選択してください: MySQL/MariaDB
- データベースのユーザー名: nextcloud (docker-compose.yml参照)
- データベースのパスワード: nextcloud (docker-compose.yml参照)
- データベース名: nextcloud (docker-compose.yml参照)
- データベースのホスト名: db
カスタムアプリ追加
上記で触れた通り、 nextcloud-docker-develop/docker-nextcloud/apps ディレクトリにカスタムアプリを追加します。
-
PowerShellにて本記事用に用意したサンプルアプリからソース群をappディレクトリにCloneします。
> cd E: > cd nextcloud-docker-develop/docker-nextcloud/apps > git clone git@github.com:ukitiyan/nextcloud-sample-app.git sampleapp -
ブラウザに戻り、
右上の歯車アイコン->+ アプリを選択しアプリ画面を表示し、 Sample App レコードの有効にするをクリックします。(認証を求められたらログインパスワードを入力してください)


