LoginSignup
3
1
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

NextcloudをDockerで構築(PostgreSQL)

Last updated at Posted at 2024-01-13

やりたいこと

docker composeでPostgreSQLを利用してNextcloudサーバーを立ち上げます。
docker composeが使える前提です。

Nextcloudとは

オンラインストレージの作成と使用のためのクライアント・サーバ型のソフトウェアである。機能的にはDropboxに似ているが、オフプレミスのオンラインストレージサービスは提供しない。Nextcloudはフリーかつオープンソースなので、誰でも自分のプライベートサーバにインストールして利用することができる。
wikipedia

PostgreSQL

拡張性とSQL準拠を強調するフリーでオープンソースの関係データベース管理システム(RDBMS)である。Postgresとしても知られている。
wikipedia

手順

  1. 作業用フォルダの作成
  2. データを保存するディレクトリを作成
  3. docker-compose.yamlを作成
  4. 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にアクセスすると確認できます。

スクリーンショット 2024-01-14 1.12.50.png

注意

ドメインを指定していないと、以下のようなエラーが出てくるのでNEXTCLOUD_TRUSTED_DOMAINS環境変数を設定する必要がある。
スクリーンショット 2024-01-13 19.42.44.png

3
1
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
3
1