wired raven

文字通りの日記。主に思ったことやガジェットについて

Rocket.Chatリベンジ

ねらい

でRocket.Chatを動かしてホストや外部のマシンからアクセスする。

会社にある似たような構成のマシンだとRocket.Chatが立ち上がっても外部からのアクセスができなかった。

ざっくり

  1. Dockerインストール
  2. docker-composeインストール
  3. SELinuxをオフにする
  4. docker-compose.ymlを作成
  5. docker-compose up
  6. ゲストのローカルからもアクセスできたし、ホストのローカルからもアクセスできた

docker-compose.yml

version: '2'

services:
  rocketchat:
    image: rocketchat/rocket.chat:latest
    restart: unless-stopped
    volumes:
      - ./uploads:/app/uploads:z
    depends_on:
      - mongo
    ports:
      - 3000:3000

  mongo:
    image: mongo:latest
    restart: unless-stopped
    volumes:
     - ./data/db:/data/db:z
     - ./data/dump:/dump:z
    command: mongod --smallfiles --oplogSize 128 --replSet rs0

  mongo-init-replica:
    image: mongo:latest
    command: 'mongo mongo/rocketchat --eval "rs.initiate({ _id: ''rs0'', members: [ { _id: 0, host: ''localhost:27017'' } ]})"'
    depends_on:
      - mongo

:zオプションはちゃんと機能してないかも。

メモ

  • SELinuxに阻まれてストレージへの書き込みができなかった。オフにしたら正常に起動した
  • 本番でやりたい環境もそうなっているのかもしれない。要確認
  • 試して思ったけれど、Rocket.Chatを運用するコストは結構、高くつくのでは、と
    • 無償利用可能なソフトを自社でホスティングする場合はどれにでもいえる。知見を得るためなどでないなら、借りたほうがよい、というのはその通りだと思う

参考