2つのウェブサイト構成における App.yml の共有ボリューム

app.yml を変更して、同じマシン(nginx の背後で動作)上に別の Discourse インスタンス(別のコンテナ、別のデータベース、考えられるすべての要素が分離されたもの)を起動できるようにしたいと考えています。

まず、現在の設定(重要な部分のみ)は以下の通りです:

## app.yml for site01
volumes:
  - volume:
      host: /var/discourse_site01/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse_site02/shared/standalone/log/var-log
      guest: /var/log

この設定は問題なく動作しており、インスタンスはオンラインで正常に稼働しています。次に、別の Discourse インスタンスをホストしたいと考えており、そのために別の app.yml で共有ボリュームを以下のように設定しました:

## app.yml for site02
volumes:
  - volume:
      host: /var/discourse_site02/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse_site02/shared/standalone/log/var-log
      guest: /var/log

この 2 番目の設定に何か落とし穴はありますか?本番環境のマシンで実行するため、この app.yml が正しいか確認したく思っています。

I would strongly recommend testing this on a clone or staging copy beforehand, never directly on a live server.

Can you elaborate on the use of nginx? Are there other production services on the same machine?

@Stephen: the nginx is simply a reverse proxy to the 1st discourse instance. Nothing complicated. Infact, the set up is the one I followed on meta.discourse to set up nginx as the front facing server.

There are NO other services running on the machine. Infact, because it is a production machine, I set everything up in a completely seerate host folder discourse_site02. Does this make sense?

Do you see any problems with the app.yml I have described? or do you think something is wrong with my config?

Is there any reason you aren’t using a two-container multisite installation then? I don’t think you lose much portability here, the quickest way to move instances between servers is by migrating a backup.

In the event you needed to move an instance you would just bring up a new server, mark the old instance as read-only, repoint DNS and restore the backup. With a low-TTL service such as Cloudflare handling DNS a small site can be migrated in minutes. Users would experience a brief period of read-only access, no content would be lost.

It’s much more efficient to divide up resources in this way, you won’t end up running two database servers and two webservers in separate containers and totally negates the need for the nginx reverse proxy.

@Stephen: yes, I have seen the link you have shown, but for simplicity of setup (small team here with not much experience), I would like to do it the way I have described which ends up with two DBs and two webservers etc. Infact this is exactly the set up I prefer.

Other than the inefficiencies you have pointed out, is there any other gotchas on this?
Are the two app.yml files I shown correct?

Thank you for your time and the awesome software :smile:

best

@Stephen: just wondering, do you think my config looks correct for the 2 container setup?

As I said, I am not looking to save resources or be efficient :slight_smile: just want to know if it is OK to run this way assuming there are no gotchas to catch me out later.