前提
-
docker
、docker-compose
はインストールされているものとします。 - 作業フォルダとファイル構成は以下ファイルツリーの通りです。
-
docker-compose.yml
、config/nc.conf
は下記の通りあらかじめ用意しておきます。
workdir
├─docker-compose.yml
├─config
│ └─nc.conf
└─data
version: '2'
volumes:
nc:
db:
services:
nginx:
container_name: nginx
image: nginx
ports:
- 80:80
volumes:
- ./config/nc.conf:/etc/nginx/conf.d/default.conf
links:
- nc:nc
↓↓↓↓↓↓↓ あなたの記事の内容
nc:
container_name: nc
image: nextcloud
links:
- db
volumes:
- nc:/var/www/html
db:
container_name: nc_db
image: mariadb
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root #
- MYSQL_PASSWORD=root # 左記のままでは防御力弱そうなので、
- MYSQL_DATABASE=nextcloud # ユーザ名とパスワードは変えましょう
- MSYQL_USER=nextcloud #
───────
nc:
container_name: nc
image: nextcloud
db:
container_name: nc_db
image: mariadb
volumes:
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root #
- MYSQL_PASSWORD=root # 左記のままでは防御力弱そうなので、
- MYSQL_DATABASE=nextcloud # ユーザ名とパスワードは変えましょう
- MYSQL_USER=nextcloud #
↑↑↑↑↑↑↑ 編集リクエストの内容
server {
listen 80;
server_name _;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
rewrite /nc/(.*)$ /$1 break;
proxy_pass http://nc;
}
}
コンテナの作成
cd workdir
sudo docker-compose up -d
nginx
コンテナとnc
(nextCloud)コンテナ、db
(mariaDB)コンテナが作成され、バックグラウンドで起動します。
nextCloudサーバの設定
本来ならdocker-compose.yml
ファイルから設定できないとあまり意味がないのですが、今回は解決方法がわからなかったので手動で直しました。😅
きれいな解決方法でないので、うまいやり方がわかり次第、記事を更新します。
今回更新した手順は、だいぶきれいだと思います!
# 上記 docker-compose の続きとします
docker-compose exec nc bash
# 以下は nc コンテナの内部での作業です
# 仮想端末を使っているのなら5行まとめてコピペでOK
cp /usr/src/nextcloud/config/config.sample.php /usr/src/nextcloud/config/config.php
sed -i -e "s/'dbuser' => ''/'dbuser' => 'nextcloud'/" /usr/src/nextcloud/config/config.php
sed -i -e "s/'dbpassword' => ''/'dbpassword' => 'nextcloud'/" /usr/src/nextcloud/config/config.php
exit
;
http://<物理サーバIP>/nc/
にアクセスするとnextCloudが起動します。
<物理サーバIP>
は192.168.0.32
(docker toolbox for windows の場合は192.168.99.100
)など、適宜インストールしたサーバのものと読み替えてください。
初期セットアップ
http://<物理サーバIP>/nc/
にアクセスすると、データベースの初期設定を終えるまでは以下の画面が表示されます。
設定内容は、docker-compose.yml
に合わせて入力して下さい。
「ユーザー名」と「データベースのホスト名」に割と引っかけなプレースホルダが表示されていますが、画像の下の説明を見ながら入力して下さい。
- ユーザー名:admin (公開サーバの場合は、安全のため別のものにすること)
- パスワード:admin (公開サーバの場合は、安全のため別のものにすること)
- データフォルダー:/var/www/html/data (デフォルトのまま)
- データベースのユーザ名;
root
(MYSQL_ROOT_PASSWORD
で指定したもの。公開サーバの場合は、安全のため別のものにすること) - データベースのパスワード:
root
(MYSQL_PASSWORD
で指定したもの。公開サーバの場合は、安全のため別のものにすること) - データベース名:
nextcloud
(MYSQL_DATABASE
で指定したもの) - データベースのホスト名(localhost):
db:3306
(docker-comopse.yml
で指定したものにポート番号を指定する)
おわりに
VPSのWebシェルを利用しているため、コピペが簡単にできず手打ちで記事を書きました。
おそらくtypoのひとつやふたつあると思われますので、動かない等不具合がありましたら、編集リクエストまたはコメントでお知らせください。
2019.12.07 追記:
docker toolbox for Windows 用に手順を変更しました。docker ならどの環境でもいけると思いますが。