7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PhpStorm+Docker+Win10(Pro)でのNextcloudアドオン開発のはじめかた

Last updated at Posted at 2018-06-18

はじめに

  • Nextcloud Meetup Tokyo #01が開催されるとのことで、記念にNextcloudアドオン開発の始め方を公開します。
    • 現時点で席の空きがあるようなので、お時間のある人は是非いらしてください:beer: (ビアバッシュあるみたい)
  • 環境は、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の設定

  1. Dockerの設定画面は、タスクトレイのDockerアイコンを右クリック -> Settings から表示できます。

  2. PhpStormからのDockerコマンドは、 tcp://localhost:2375 でリッスンするため、以下の Expose daemon on tcp://localhost:2375 without TLS を On にします。
    Docker Settings

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

PhpStormの設定

  1. PowerShellにて本記事用に用意したgitリポジトリからソース群をCloneします。submoduleで構成されているので --recursive を付与してください。

    > cd E:
    > git clone --recursive git@github.com:ukitiyan/nextcloud-docker-develop.git
    > cd nextcloud-docker-develop
    
  2. 以下のようなディレクトリ構成でCloneされていることを確認してください。

    /nextcloud-docker-develop
     ├─docker-nextcloud        <-- docker-composeベースディレクトリ
     │  ├─apps                 <-- カスタマイズアプリ配置ディレクトリ
     │  ├─conf                 <-- カスタムconfファイル配置ディレクトリ
     │  └─docker-compose.yml 
     ├─server-src              <-- nextcloudのcoreソース
     ├─.gitignore
     ├─.gitmodules
     └─README.md
    
  3. 上記 nextcloud-docker-develop をワークスペースとして、PhpStormを起動します。

    • 本記事では、 E:¥nextcloud-docker-develop をワークスペースとしています。
  4. ツールバーの File -> Settings -> Build, Execution, Deployment -> Docker から、APIが疎通(Connection succeefull)していることを確認してください。確認したら OK クリックで抜けてください。
    2018-04-23_15h50_42.png

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

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

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

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

Nextcloudの初期設定

  1. 引き続き、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=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 がマウントされていることが分かります。
  2. さて、ブラウザに戻り以下の通り設定し セットアップを完了します ボタンをクリックしてください。

    • ユーザー名: admin (任意)
    • パスワード: ********* (任意)
    • データフォルダ: /var/www/html/data
    • データベースを選択してください: MySQL/MariaDB
    • データベースのユーザー名: nextcloud (docker-compose.yml参照)
    • データベースのパスワード: nextcloud (docker-compose.yml参照)
    • データベース名: nextcloud (docker-compose.yml参照)
    • データベースのホスト名: db
  3. 以下の画面が表示されることを確認してください。
    2018-06-19_01h47_36.png

カスタムアプリ追加

上記で触れた通り、 nextcloud-docker-develop/docker-nextcloud/apps ディレクトリにカスタムアプリを追加します。

  1. PowerShellにて本記事用に用意したサンプルアプリからソース群をappディレクトリにCloneします。

    > cd E:
    > cd nextcloud-docker-develop/docker-nextcloud/apps
    > git clone git@github.com:ukitiyan/nextcloud-sample-app.git sampleapp
    
  2. ブラウザに戻り、 右上の歯車アイコン -> + アプリ を選択しアプリ画面を表示し、 Sample App レコードの 有効にする をクリックします。(認証を求められたらログインパスワードを入力してください)
    2018-06-19_02h04_55.png

  3. トップ画面に戻り Sample App が表示されているか確認してください。
    2018-06-19_02h15_21.png

まとめ

  • あとは、 Sample App を修正するなり、自前のカスタムアプリを追加するなり、Nextcloudアドオン開発をガシガシ進めてください。
  • PHP Stormを使っていれば、同一ワークスペース内のソースにリンクしてくれるので、階層の異なる server-src のcoreソースに対しても、エイリアスを通してジャンプやアドバイスしてくれます。
  • 開発ドキュメントはこちら
  • スケルトンアプリ作成ツールはこちら
  • Nextcloudの日本語コミュニティはこちら
7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?