[Web][Docker] HTTPS な WordPress と合わせて NextCloud を立ち上げる docker-compose.yml

HTTPS で WordPress と NextCloud を立ち上げるための docker-compose.yml

環境&対象

以下の環境で動作確認を行なっています。

  • Ubuntu 18.04 LTS server
  • docker 20.10.8

HTTPS 対応な WordPress + NextCloud を立ち上げる

前回は、HTTPS 対応している WordPress を立ち上げる docker-compose.yml でした。
[Web][Docker] HTTPS な WordPress を立ち上げる docker-compose.yml

自前サーバーを Cloud Strage として使用できる NextCloud も合わせて立ち上げるように修正した docker-compose.yml を紹介します。

前回同様 検索してもそのものずばりがあまり見つからなかったので、メモしておきます。(直した方が良い設定ありましたら、教えてもらえると助かります)

docker-compose.yml

以下のファイルをつかって、docker-compose up -d です。

ドメイン名はそれぞれ 引ける状態になっていることが必要です。

クライアントを動作させるには config.phpに 以下の行を追加
config/config.php
```
‘overwriteprotocol’ => ‘https’
```


version: '3'

services:
  https-portal:
    image: steveltn/https-portal:1
    ports:
      - '80:80'
      - '443:443'
    links:
      - wordpress
    restart: always
    environment:
      DOMAINS: '<ワードプレスドメイン> -> http://wordpress:80, <NextCloudドメイン> -> http://nc21'
      STAGE: 'production' # Don't use production until staging works
      CLIENT_MAX_BODY_SIZE: 200M
      # FORCE_RENEW: 'true'
    volumes:
      - https-portal-data:/var/lib/https-portal

  wordpress:
    image: wordpress
    restart: always
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: <ユーザー名>
      WORDPRESS_DB_PASSWORD: <パスワード>
      WORDPRESS_DB_NAME: <DB名>
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: <DB名>
      MYSQL_USER: <ユーザー名>
      MYSQL_PASSWORD: <パスワード>
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

  nc21:
    image: nextcloud
    ports:
      - '8080:80'
    links:
      - mariadb
    volumes:
      - nextcloud:/var/www/html
    restart: always
    environment:
       - MYSQL_PASSWORD=<パスワード>
       - MYSQL_DATABASE=<DB名>
       - MYSQL_USER=<ユーザー名>
       - MYSQL_HOST=mariadb


  mariadb:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    volumes:
      - nextcloud-db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=<パスワード>
      - MYSQL_PASSWORD=<パスワード>
      - MYSQL_DATABASE=<DB名>
      - MYSQL_USER=<ユーザー名>

volumes:
  https-portal-data:
  wordpress:
  db:
  nextcloud:
  nextcloud-db:

注意点

上記設定で、サーバーとしては問題なく動作します。

ですが、macOS クライアントからの接続で問題が発生するので、macOS クライアントアプリを使うのであれば、サーバー側の設定ファイルの修正が必要になります。

NextCloud を立ち上げている container に入って、config/config.php に以下を追加します。


‘overwriteprotocol’ => ‘https’

まとめ:HTTPS な WordPress と合わせて NextCloud を立ち上げる docker-compose.yml

HTTPS な WordPress と合わせて NextCloud を立ち上げる docker-compose.yml
  • https-portal を使うと簡単に HTTPS 化できるのは、WordPress も NextCloud も同じ
  • NextCloud のクライアントによっては、サーバー側の設定が必要

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です