« ボンネットをエア抜き+軽量FRPに替えました | メイン | squareレシートの文字の小ささに身もだえる »

2025年8月18日

RocketChatをdocker版に移す >>Linux  | >>サーバ 

RocketChatのリリースバージョンのサポート期限が短くなりました。
短くなることだけならいいのですが、依存するライブラリが上がることもそれなりにありまして...
2018年の0.69くらいからCentosのソースインストールで付き合い続け、LIBCが上がるためにBaseOSを上げることもありましたが、Alma8で次は9にっていうのも高頻度で追うのがしんどい。彼らの方もDocker推奨ということを書いていて、書いてあるからなおのこと容赦なく依存ライブラリも上げてくる。しかたないなー、dockerに移すか―ということで作業します。

mongodをdocker内ではなく外部で立てるのが本当は推奨らしいので、mongodはそのまま生かしておいて、docker環境作って接続できるようにする。
・mongodにあるデータはそのままでok、mongodの設定も変更しない
・BaseOSで動いていたRocketChatを停止する。
・Dockerでインストール
・docker-compose.ymlからmongodのとこはコメントアウトする、${MONGO_URL}が変数で入ってなかったりするので書き替えとく、固定ipにしといた方がfirewall的にやりやすいので固定記述にする(plesk環境対策)

docker-compose.ymlはこんな感じ

volumes:
  mongodb_data: { driver: local }

networks:
  my-network:
    driver: bridge
    name: test_network_name
    ipam:
      driver: default
      config:
        - subnet: 172.18.0.0/24
services:
  rocketchat:
    image: ${IMAGE:-registry.rocket.chat/rocketchat/rocket.chat}:${RELEASE:-latest}
    restart: always
    labels:
      traefik.enable: "true"
      traefik.http.routers.rocketchat.rule: Host(`${DOMAIN:-}`)
      traefik.http.routers.rocketchat.tls: "true"
      traefik.http.routers.rocketchat.entrypoints: https
      traefik.http.routers.rocketchat.tls.certresolver: le
    environment:
      #MONGO_URL: mongodb://mongodb:27017/rocketchat?replicaSet=rs0
      MONGO_URL: ${MONGO_URL}
      ROOT_URL: ${ROOT_URL:-http://localhost:3000}
      PORT: ${PORT:-3000}
      DEPLOY_METHOD: docker
      DEPLOY_PLATFORM: ${DEPLOY_PLATFORM:-}
      REG_TOKEN: ${REG_TOKEN:-}
    #depends_on:
    # - mongodb
    expose:
      - ${PORT:-3000}
    ports:
      - "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}"
    volumes:
      - /opt/Rocket.Files:/opt/Rocket.Files
    networks:
      my-network:
         ipv4_address: 172.18.0.3


#  mongodb:
#    image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-6.0}
#    restart: always
#    volumes:
#      - ${MONGODB_HOST_PATH:-mongodb_data}:/bitnami/mongodb
#    environment:
#      MONGODB_REPLICA_SET_MODE: primary
#      MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0}
#      MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017}
#      MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb}
#      MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017}
#      MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb}
#      MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true}
#      ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes}

.envはこんなのが書けてればたぶんok

RELEASE=7.8.2
MONGO_URL=mongodb://固定ip:27017/rocketchat?replicaSet=rs01&directConnection=true&ssl=false&authSource=admin

mongodにデータが入ってるのでmongodにdokerから接続さえできればこれで移設完了です。dockerのipから接続させるところ、.ymlの書き方で悩んだ感じですね。。。。

plesk環境下で動かしたいときは上記に追加で
1.パネルでドメイン作成
2.Let's encryptでSSLいれる
3.Apache および nginx の設定で、proxymode をoffにして一旦Save(一旦saveしないと次のdirectiveでエラーになる。)
4.nginx 追加ディレクティブを記載する
location / {
	proxy_pass http://127.0.0.1:3000/;
	proxy_http_version 1.1;
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header Connection "upgrade";
	proxy_set_header Host $http_host;

	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forward-Proto http;
	proxy_set_header X-Nginx-Proxy true;

	proxy_redirect off;
}

これでPlesk環境でも接続させられるようになります。

twitterこの記事をTwitterでみんなに教える。

投稿者 debizoh : 2025年8月18日 02:14



トラックバック

現在、この記事はトラックバックを受け付けておりません。


コメント

この記事へコメントを投稿する。

コメントは管理人が承認後に掲載されます。




保存しますか?


refresh captcha

画像の中に見える文字を入力してください。