やりたいこと
docker composeでPostgreSQLを利用してNextcloudサーバーを立ち上げます。
docker composeが使える前提です。
Nextcloudとは
オンラインストレージの作成と使用のためのクライアント・サーバ型のソフトウェアである。機能的にはDropboxに似ているが、オフプレミスのオンラインストレージサービスは提供しない。Nextcloudはフリーかつオープンソースなので、誰でも自分のプライベートサーバにインストールして利用することができる。
wikipedia
PostgreSQL
拡張性とSQL準拠を強調するフリーでオープンソースの関係データベース管理システム(RDBMS)である。Postgresとしても知られている。
wikipedia
手順
- 作業用フォルダの作成
- データを保存するディレクトリを作成
-
docker-compose.yaml
を作成 -
docker compose up -d
でサーバーを立ち上げる
前準備
作業用フォルダの作成とデータを保存するディレクトリを作成します。
今回のdocker image はNextcloud manual docker image(docker hub)を利用しました。今回指定していない環境変数が様々あるので、必要に応じて確認してください。
mkdir nextcloud
cd nextcloud
mkdir {nextcloud_data,postgres_data}
docker-compose.yaml
を以下の内容で作成します。今回はデータを永続化するために、ローカルにディレクトリを作成してマウントしています。
nextcloud/docker-compose.yaml
version: '2'
services:
postgres:
image: postgres
volumes:
- ./postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: nextcloud #postgresqlのdb名
POSTGRES_USER: nextcloud #postgresqlのuser名
POSTGRES_PASSWORD: P@55w0rd #postgresqlのpassword
nextcloud:
image: nextcloud
environment:
- POSTGRES_DB=nextcloud #上で設定したpostgresqlのdb名
- POSTGRES_USER=nextcloud #上で設定したpostgresqlのuser名
- POSTGRES_PASSWORD=P@55w0rd #上で設定したpostgresqlのpassword
- POSTGRES_HOST=postgres #PosetgreSQLを使う設定を行う
- NEXTCLOUD_TRUSTED_DOMAINS=192.168.1.100 #サーバーのドメインを指定する。
ports:
- 8080:80
volumes:
- ./nextcloud_data:/var/www/html
depends_on:
- postgres
実行
先ほど作成したnextcloud
ディレクトリで実行してください。
nextcloud
docker compose up -d
ログの確認をしたい場合
nextcloud
docker compose logs nextcloud -f
接続
http://192.168.1.100:8080
にアクセスすると確認できます。
注意
ドメインを指定していないと、以下のようなエラーが出てくるのでNEXTCLOUD_TRUSTED_DOMAINS
環境変数を設定する必要がある。