Docker for WindowsでownCloudサーバ構築・・・・でも問題有り

Hyper-Vを使ったDocker for Windowsは果たしてどこまで使えるのか・・・・

という追求をしているわけでは無いのですが。

ownCloudサーバを動かしてみて、感じをつかもうと思います。

ownCloudサーバのインストール手順

複数コンテナの連携に便利な、docker-composeを使おうと思います。

  1. Docker for Windowsをインストールします。
    こちらの記事です。
  2. dockerコンテナからWindowsのドライブへアクセスできるように設定しておきます。C:ドライブにownCloud用の実行フォルダを作る場合。Docker for Windowsの設定を開き、「Shared Drives」のCにチェックを入れました。
    dockershareddrives
  3. コマンドプロンプトを開き、ownCloud用のフォルダを作成します。
  4. テキストエディタで、docker-compose.ymlファイルを作成します。
    Official Repositoryを参考に、Windowsで動作するように変更しています。

    ※2016.11.10追記: docker-composeが起動しなかったため、11行目を変更しました。
    「version:」と「’2’」の間にスペースを追加しました。
  5. docker-composeを起動します。
  6. ブラウザで、http://localhost:8080にアクセスします。
    うまく起動していれば、初期設定画面が表示されるので、docker-compose.ymlのコメント欄を参考に、初期設定を行います。
    owncloud

さて。

Mac版のときは、これで設定が完了だったのですが。

Windows版はどうも・・・・・いくつかの問題に対応する必要がありそうです。


データディレクトリのパーミッション0770問題対応

初期設定が完了して、いざ使おうとすると。

次の画面が表示されました。

chown「データディレクトリ(/var/www/html/data)は他のユーザーも閲覧することができます
ディレクトリが他のユーザーから見えないように、パーミッションを0770に変更してください。」

これはおそらく、ownCloudのデータ用フォルダに指定したファイルシステムがNTFSであることが関連する感じです

Docker for Windowsは、Volumesでマウントしたフォルダのパーミッションは0755になります。smbを使用しているため、パーミッションを変えることはできないそうです。

※2017.7.5Nextcloud構築記事の情報をもとに修正致しました。

さて。ファイルシステムが違うパーミッションが変えられないという、根源的な問題ですので、回避策をとろうと思います。

こちらのownCloudのフォーラムを参考に、util.phpを変更、パーミッションを確認しないように変更しました。

c:\owncloud\html\lib\private\util.php
または
c:\owncloud\html\lib\private\legacy\util.php

変更前

変更後

※18.7.26追記:Docker バージョン18.06.0の場合、次のように変更しないと動きませんでした。


ホスト名がlocalhostに変わってしまう問題対応

ownCloudにアクセスしたとき、ホスト名が勝手に「http://localhost:8080」に代わってしまいました。

localhost以外に対応するため、ownCloudの設定をエディタで変更しました。

c:\owncloud\html\config\config.php

変更前

変更後

ホスト名とIPアドレスを書き足したかたちです。


さて。

これで一応、動作はするのですが。

使ってみたところ、結構な頻度で、mysqlがExitしてしまい、コンテナが再起動している感じです。

これはdocker for Windowsの問題なのか、Hyper-Vの問題なのか・・・

様子を見る必要がありそうです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク